共用方式為


DXGKARG_COLLECTDBGINFO2 結構 (d3dkmddi.h)

當呼叫 DxgkDdiCollectDbgInfo2 時,DXGKARG_COLLECTDBGINFO結構會描述偵錯報表的資訊。

語法

typedef struct _DXGKARG_COLLECTDBGINFO2 {
  UINT                       Reason;
  VOID                       *pBuffer;
  SIZE_T                     BufferSize;
  DXGKARG_COLLECTDBGINFO_EXT *pExtension;
  DXGK_TDR_TYPE              TdrType;
  UINT                       TdrPayloadSize;
  VOID                       *TdrPayload;
} DXGKARG_COLLECTDBGINFO2;

成員

Reason

[in] 錯誤檢查程式代碼 ,要在 pBuffer 指向的緩衝區中傳回偵錯資訊。 以下是可能的值:

意義
VIDEO_TDR_TIMEOUT_DETECTED 0x117 DxgkDdiResetEngine 作業已重設邏輯配接器。
VIDEO_ENGINE_TIMEOUT_DETECTED 0x141 DxgkDdiResetEngine 作業在實體配接器內重設一或多個節點。 從 Windows 8 開始提供。

pBuffer

[out]緩衝區的指標,該緩衝區會因為 Reason 所指定的原因而接收偵錯資訊。

BufferSize

要複製到 pBuffer 指向之緩衝區的大小上限,以位元組為單位。

pExtension

驅動程式選擇性填入偵錯延伸模組資訊的OS配置 DXGKARG_COLLECTDBGINFO_EXT 結構的指標。

TdrType

[in] DXGK_TDR_TYPE 值,指定發生的 TDR 類型。

TdrPayloadSize

[in] TdrPayload 所指向之 TDR 承載的大小,以位元組為單位。

TdrPayload

[in]緩衝區的指標,其中包含特定 TdrType 值特定的承載,如下表所示。 這個緩衝區可以是NULL。

TdrType 相關聯的結構
DXGK_TDR_TYPE_ENGINE_TIMEOUT TdrPayload 指向 DXGK_TDR_PAYLOAD_ENGINE_TIMEOUT 結構。
DXGK_TDR_TYPE_VSYNC_TIMEOUT TdrPayload 指向 DXGK_TDR_PAYLOAD_VSYNC_TIMEOUT 結構。

備註

DXGKARG_COLLECTDBGINFO2的配置與DXGKARG_COLLECTDBGINFO回相容,以允許 DxgkDdiCollectDbgInfo2 實作視需要重複使用現有的 DxgkDdiCollectDbgInfo 協助程式。 基於這個理由, ReasonpBufferBufferSizepExtension 字段具有相同的語意。

針對 TdrType () 中指定的某些 TDR 類型,OS 會在 TdrPayloadSize 位元組的 TdrPayload 緩衝區中提供其他資訊。 它可以是 NULL,而且驅動程式預期會在不損毀的情況下處理此案例。

當承載不是 NULL 時,它可以轉換成對應至 TDR 類型的結構。 OS 可能會以回溯相容的方式成長這些結構,並在結尾新增新的欄位。 驅動程式必須先檢查 TdrPayloadSize ,才能存取 TdrPayload 欄位,以確保 OS 實作所需的承載版本或更新版本。

TdrPayload 所指向的記憶體只有在 DxgkddiCollectDbgInfo2 呼叫期間才有效。 驅動程式不應該將 TdrPayload 的指標儲存在 DxgkddiCollectDbgInfo2 呼叫結束時。

如需詳細資訊,請參閱 TDR 偵錯性改善

規格需求

需求
最低支援的用戶端 Windows 11 版本 24H2 (WDDM 3.2)
標頭 d3dkmddi.h

另請參閱

DXGK_TDR_TYPE

DxgkDdiCollectDbgInfo

DxgkDdiCollectDbgInfo2