DXGKDDI_QUERYDEPENDENTENGINEGROUP回调函数 (d3dkmddi.h)

Dxgkrnl的 GPU 计划程序调用 DxgkddiQuerydependentenginegroup 来查询物理显示适配器中节点的依赖项。

语法

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

NTSTATUS DxgkddiQuerydependentenginegroup(
  IN_CONST_HANDLE hAdapter,
  INOUT_DXGKARG_QUERYDEPENDENTENGINEGROUP pQueryDependentEngineGroup
)
{...}

参数

hAdapter

[in]与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序以前向 MiniportDeviceContext 中的 DirectX 图形内核子系统提供了此句柄,DxgkDdiAddDevice 函数的输出参数。

pQueryDependentEngineGroup

[in/out]一个 DXGKARG_QUERYDEPENDENTENGINEGROUP 结构,其中 KMD 指定受重置操作影响的所有节点。

返回值

DxgkddiQuerydependentenginegroup 必须返回 STATUS_SUCCESS

言论

Dxgkrnl的 GPU 计划程序调用此函数以获取所有物理适配器(引擎)的说明,这些适配器(引擎)将受到引擎重置请求的影响。 它有助于改善硬件体系结构上的用户体验,这些体系结构在多个引擎之间具有依赖项,这些引擎可能会影响重置过程。 请注意,所有受影响的节点必须具有相同的引擎相关性值。 (请参阅 Windows 8中 TDR 更改中的引擎相关性讨论。

每次 调用 dxgkDdiResetEngine时,GPU 计划程序都会调用 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