共用方式為


DXGKARG_COLLECTDIAGNOSTICINFO 結構 (dispmprt.h)

DXGKDDI_COLLECTDIAGNOSTICINFO 回呼函式用來收集各種原因的私人驅動程序資訊。

例如,OS 會在需要診斷資訊時呼叫DXGKDDI_COLLECTDIAGNOSTICINFO回呼函式,同時提供要求的資訊類型, (DXGK_DIAGNOSTICINFO_TYPE) 。 驅動程序應該收集所有私人資訊,以調查問題,並將其提交至OS。

語法

typedef struct _DXGKARG_COLLECTDIAGNOSTICINFO {
  [in, optional]  HANDLE                   hAdapter;
  [in]            DXGK_DIAGNOSTICINFO_TYPE Type;
                  CHAR                     BucketingString[DXGK_DUMP_BUCKETING_BUFFER_SIZE];
                  CHAR                     DescriptionString[DXGK_DUMP_DESCRIPTION_BUFFER_SIZE];
  union {
    [out, optional] PVOID pReserved;
  };
  [in]            UINT                     BufferSizeIn;
  [out]           UINT                     BufferSizeOut;
  [out]           PVOID                    pBuffer;
} DXGKARG_COLLECTDIAGNOSTICINFO;

成員

[in, hAdapter

與顯示配接器相關聯的內容區塊句柄。

在WDDM 2.6之前,顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式會將此句柄提供給 DirectX 圖形核心子系統。 此參數是選擇性的,如果驅動程式無法提供OS的句柄,則可為NULL。

[in] Type

DXGK_DIAGNOSTICINFO_TYPE列舉值,指出驅動程式需要收集的信息類型。

[out] BucketingString[DXGK_DUMP_BUCKETING_BUFFER_SIZE]

為驅動程式應該用來識別問題貯體用途之字串提供的固定大小緩衝區。 此字串在相同問題的驅動程式版本之間應該一致,因此不應該包含來源參考、驅動程式版本或實例特定詳細數據等元素,例如柵欄編號或目標標識符。 它可能包含資訊,例如失敗的內部子元件的識別碼,或模組的名稱,例如 mismatched_driver_ihvxseries.sys。 有效的代碼是 0x21-0x7E ,而且應該使用底線 (0x5f) ,而不是使用空格 (0x20) 。

[out, DescriptionString[DXGK_DUMP_DESCRIPTION_BUFFER_SIZE]

為驅動程式應該用來描述未用於貯體之實例特定詳細數據的字串提供的固定大小緩衝區,但可用來提供特定問題的詳細數據,例如 mismatched_driver_versions_kmd_10.22.1111.1121,_ihvxseries:10.22.1111.1122。 有效的代碼是 0x21-0x7E ,而且應該使用底線 (0x5f) ,而不是使用空格 (0x20) 。

[out, pReserved

未命名等位中 VOID 的指標,保留為 OS 可能針對某些 類型提供之類型特定自變數的指標佔位元元。 對於不需要任何擴充資訊的 別而言,此值為 NULL。

[in] BufferSizeIn

變數,提供OS配置緩衝區的大小,以位元組為單位。 針對 DXGK_DI_ADDDEVICEType 值,DXGK_DI_STARTDEVICE大小大約0x80000。

[out] BufferSizeOut

驅動程式應該以填滿其私人數據的實際大小來更新的變數。 如果未提供私人數據,驅動程序應該將0指派給變數。

[out] pBuffer

接收私人驅動程序數據的緩衝區指標。

規格需求

需求
最低支援的用戶端 Windows 10 (版本 1903)
標頭 dispmprt.h

另請參閱

DXGK_DIAGNOSTICINFO_TYPE

DXGKDDI_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiGetDisplayStateIntrusive

DxgkDdiGetDisplayStateNonIntrusive