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
指向物理设备对象的指针 (标识显示适配器的 PDO) 。
[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 | 设备已关闭电源。 |
注解
此函数在被动级别调用,在调用 DxgkDdiAddDevice 和 DxgkDdiStartDevice 之间随时调用,并且应支持 零级别同步。 收集的数据不应包含任何私人用户信息。
WDDM 2.7 及更高版本的驱动程序需要支持黑屏黑盒数据收集DXGK_DI_BLACKSCREEN DXGK_DIAGNOSTICINFO_TYPE枚举类型。
对于黑屏方案,OS 将首先通过调用 DxgkDdiGetDisplayStateNonIntrusive 和 DxgkDdiGetDisplayStateIntrusive 从驱动程序收集白盒数据,然后再调用此 DDI 收集黑盒信息。
建议尽可能使用 pCollectDiagnosticInfo-BucketingString> 对黑盒数据进行桶化。 如果 BufferSizeIn 输入缓冲区的大小不足以满足所有黑盒数据的需求,则驱动程序应在省去大多数黑屏根本原因分析中最不重要的数据时做出自己的权衡。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1903 |
标头 | dispmprt.h |
IRQL | PASSIVE_LEVEL |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈