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中
每次 调用 dxgkDdiResetEngine时,GPU 计划程序都会调用 DxgkDdiQueryDependentEngineGroup。 GPU 计划程序等待 500 毫秒,以便显示微型端口驱动程序完成所有依赖引擎的抢占。 对于驱动程序无法完成抢占的任何引擎,GPU 计划程序会根据引擎序号值按顺序调用 DxgkDdiResetEngine 函数。
下面是有关如何在 DXGKARG_QUERYDEPENDENTENGINEGROUP中计算位掩码的示例。DependentNodeOrdinalMask 成员。 如果 DXGKARG_QUERYDEPENDENTENGINEGROUP 结构 NodeOrdinal 和 EngineOrdinal 成员的原始值分别为 1 和 0,并且具有标识符 2 和 4 的其他节点也将在重置节点 1 时重置,驱动程序应将 DependentNodeOrdinalMask 设置为 10110,或0x16十六进制表示法。 假定所有依赖节点的索引值 EngineOrdinal 相同。 要重置的节点包含在 DependentNodeOrdinalMask 位掩码中。
此函数应可分页,并且应始终成功。
操作系统保证此函数遵循 线程处理和同步第一级中定义的第一级同步模式。
有关详细信息,请参阅 Windows 8中的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
支持的最低服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |