DXGKDDI_COLLECTDIAGNOSTICINFO回呼函式 (dispmprt.h)
DxgkDdiCollectDiagnosticInfo 回呼例程會基於 DXGK_DIAGNOSTICINFO_TYPE所指定的原因收集私人驅動程序資訊。
在 Windows 10 版本 1903 中,如果函式呼叫 DxgkDdiAddDevice 或 DxgkDdiStartDevice 失敗,驅動程式將會呼叫以收集私用資訊。
語法
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 層級呼叫,每當呼叫 DxgkDdiAddDevice 和 DxgkDdiStartDevice之間,都應該支援 同步處理零層級。 收集的數據不應包含任何私人用戶資訊。
需要WDDM 2.7和更新版本的驅動程式,才能支援黑色螢幕黑色方塊數據收集的 DXGK_DI_BLACKSCREENDXGK_DIAGNOSTICINFO_TYPE 列舉類型。
針對黑色螢幕案例,OS 會先呼叫 DxgkDdiGetDisplayStateNonIntrusive 並 DxgkDdiGetDisplayStateIntrusive,再呼叫此 DDI 以收集黑箱資訊,以收集驅動程式的白色方塊數據。
建議您盡可能使用 pCollectDiagnosticInfo->BucketingString 來貯體化黑箱數據。 如果 BufferSizeIn 輸入緩衝區的大小不足以處理所有黑箱數據,則驅動程式應該做出自己的取捨,以排除大多數黑螢幕根本原因分析中最不重要的數據。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1903 |
標題 | dispmprt.h |
IRQL | PASSIVE_LEVEL |