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 结构的 NodeOrdinalEngineOrdinal 成员的原始值为 1 和 0,并且标识符为 2 和 4 的其他节点也将在节点 1 重置时重置,驱动程序应将 DependentNodeOrdinalMask 的二进制值设置为 10110,或以十六进制表示法0x16。 假定所有依赖节点的索引值 EngineOrdinal 相同。 正在重置的节点包含在 DependentNodeOrdinalMask 位掩码中。

此函数应可分页,并且应始终成功。

操作系统保证此函数遵循线程处理和同步第一级中定义的 第一级同步模式。

有关详细信息,请参阅 Windows 8 中的 TDR 更改

要求

要求
最低受支持的客户端 Windows 8
最低受支持的服务器 Windows Server 2012
目标平台 桌面
标头 d3dkmddi.h
IRQL PASSIVE_LEVEL

另请参阅

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine