DXGKDDI_QUERYDEPENDENTENGINEGROUP回调函数 (d3dkmddi.h)
DXGKDDI_QUERYDEPENDENTENGINEGROUP 由显示端口驱动程序的 GPU 计划程序调用,以查询物理显示适配器中节点的依赖项。
语法
DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;
NTSTATUS DxgkddiQuerydependentenginegroup(
IN_CONST_HANDLE hAdapter,
INOUT_DXGKARG_QUERYDEPENDENTENGINEGROUP pQueryDependentEngineGroup
)
{...}
参数
hAdapter
与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序之前在 DxgkDdiAddDevice 函数的 MiniportDeviceContext 输出参数中为 DirectX 图形内核子系统提供了此句柄。
pQueryDependentEngineGroup
DXGKARG_QUERYDEPENDENTENGINEGROUP 类型的值,指定受重置操作影响的所有节点。
返回值
如果成功 , 则返回STATUS_SUCCESS。 否则,它将返回 Ntstatus.h 中定义的错误代码之一。
注解
此函数用于描述受引擎重置请求影响的所有物理适配器 (引擎) 。 它有助于改善硬件体系结构上的用户体验,这些体系结构在可能影响重置过程的多个引擎之间具有依赖关系。 请注意,所有受影响的节点必须具有相同的引擎相关性值。 (请参阅 Windows 8.) 中的 TDR 更改中的引擎关联讨论
显示端口驱动程序的 GPU 计划程序每次调用 DxgkDdiResetEngine 函数时都会调用 DxgkDdiQueryDependentEngineGroup 。 GPU 计划程序等待 500 毫秒,以便显示微型端口驱动程序完成所有依赖引擎的抢占。 对于驱动程序无法完成抢占的任何引擎,GPU 计划程序会根据引擎序号值按顺序调用 DxgkDdiResetEngine 函数。
下面是如何计算 DXGKARG_QUERYDEPENDENTENGINEGROUP中的位掩码的示例。DependentNodeOrdinalMask 成员。 如果 DXGKARG_QUERYDEPENDENTENGINEGROUP 结构的 NodeOrdinal 和 EngineOrdinal 成员的原始值为 1 和 0,并且标识符为 2 和 4 的其他节点也将在节点 1 重置时重置,驱动程序应将 DependentNodeOrdinalMask 的二进制值设置为 10110,或以十六进制表示法0x16。 假定所有依赖节点的索引值 EngineOrdinal 相同。 正在重置的节点包含在 DependentNodeOrdinalMask 位掩码中。
此函数应可分页,并且应始终成功。
操作系统保证此函数遵循线程处理和同步第一级中定义的 第一级同步模式。
有关详细信息,请参阅 Windows 8 中的 TDR 更改。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |