共用方式為


DXGKDDI_COLLECTDIAGNOSTICINFO回呼函式 (dispmprt.h)

DxgkDdiCollectDiagnosticInfo 回呼例程會基於 DXGK_DIAGNOSTICINFO_TYPE所指定的原因收集私人驅動程序資訊。

在 Windows 10 版本 1903 中,如果函式呼叫 DxgkDdiAddDeviceDxgkDdiStartDevice 失敗,驅動程式將會呼叫以收集私用資訊。

語法

DXGKDDI_COLLECTDIAGNOSTICINFO DxgkddiCollectdiagnosticinfo;

NTSTATUS DxgkddiCollectdiagnosticinfo(
  [in]      IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [in, out] INOUT_PDXGKARG_COLLECTDIAGNOSTICINFO pCollectDiagnosticInfo
)
{...}

參數

[in] PhysicalDeviceObject

識別顯示適配卡之實體裝置物件的指標。

[in, out] pCollectDiagnosticInfo

描述驅動程式所收集資訊的 DXGKARG_COLLECTDIAGNOSTICINFO 結構的指標。

傳回值

如果成功收集私人數據資訊,則傳回STATUS_SUCCESS。 否則,它會傳回錯誤碼,例如下列其中一項。

錯誤碼 意義
STATUS_DRIVER_INTERNAL_ERROR 驅動程式內發生一般 SW 錯誤。
STATUS_ACCESS_DENIED 硬體目前正由其他線程使用,此 DDI 無法存取它。
STATUS_DEVICE_HARDWARE_ERROR 發生一般 HW 錯誤。
STATUS_DEVICE_POWERED_OFF 裝置已關閉電源。

言論

此函式會在 PASSIVE 層級呼叫,每當呼叫 DxgkDdiAddDeviceDxgkDdiStartDevice之間,都應該支援 同步處理零層級。 收集的數據不應包含任何私人用戶資訊。

需要WDDM 2.7和更新版本的驅動程式,才能支援黑色螢幕黑色方塊數據收集的 DXGK_DI_BLACKSCREENDXGK_DIAGNOSTICINFO_TYPE 列舉類型。

針對黑色螢幕案例,OS 會先呼叫 DxgkDdiGetDisplayStateNonIntrusiveDxgkDdiGetDisplayStateIntrusive,再呼叫此 DDI 以收集黑箱資訊,以收集驅動程式的白色方塊數據。

建議您盡可能使用 pCollectDiagnosticInfo->BucketingString 來貯體化黑箱數據。 如果 BufferSizeIn 輸入緩衝區的大小不足以處理所有黑箱數據,則驅動程式應該做出自己的取捨,以排除大多數黑螢幕根本原因分析中最不重要的數據。

要求

要求 價值
最低支援的用戶端 Windows 10 版本 1903
標頭 dispmprt.h
IRQL PASSIVE_LEVEL

另請參閱

DXGKARG_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiStartDevice