функция обратного вызова DXGKDDI_QUERYDEPENDENTENGINEGROUP (d3dkmddi.h)

DXGKDDI_QUERYDEPENDENTENGINEGROUP вызывается планировщиком GPU драйвера порта дисплея для запроса зависимостей узлов в физическом адаптере дисплея.

Синтаксис

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

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

Параметры

hAdapter

Дескриптор для блока контекста, связанного с видеоадаптером. Драйвер мини-порта дисплея ранее предоставлял этот дескриптор подсистеме ядра графики DirectX в выходном параметре MiniportDeviceContext функции DxgkDdiAddDevice .

pQueryDependentEngineGroup

Значение типа DXGKARG_QUERYDEPENDENTENGINEGROUP , указывающее все узлы, затронутые операцией сброса.

Возвращаемое значение

При успешном выполнении возвращает STATUS_SUCCESS . В противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Эта функция используется для описания всех физических адаптеров (подсистем), на которые влияет запрос на сброс подсистемы. Это помогает улучшить взаимодействие с пользователем на аппаратных архитектурах, имеющих зависимости между несколькими подсистемами, которые могут повлиять на процесс сброса. Обратите внимание, что все затронутые узлы должны иметь одинаковое значение сходства подсистемы. (См. обсуждение сходства подсистемы в разделе Изменения TDR в Windows 8.)

Планировщик GPU драйвера порта дисплея вызывает DxgkDdiQueryDependentEngineGroup при каждом вызове функции DxgkDdiResetEngine . Планировщик GPU ожидает 500 миллисекундах, пока драйвер мини-порта дисплея завершит вытеснение всех зависимых ядер. Для любых подсистем, для которых драйвер не может выполнить вытеснение, планировщик GPU последовательно вызывает функцию DxgkDdiResetEngine на основе порядкового значения подсистемы.

Ниже приведен пример вычисления битовой маски в DXGKARG_QUERYDEPENDENTENGINEGROUP. Член DependentNodeOrdinalMask . Если исходные значения элементов NodeOrdinal и EngineOrdinal структуры DXGKARG_QUERYDEPENDENTENGINEGROUP равны 1 и 0 соответственно, а дополнительные узлы с идентификаторами 2 и 4 также будут сбрасываться при сбросе узла 1, драйвер должен задать двоичное значение DependentNodeOrdinalMask равным 10110 или 0x16 в шестнадцатеричном формате. Предполагается, что значение индекса EngineOrdinal идентично для всех зависимых узлов. Сбрасываемый узел включен в битовую маску DependentNodeOrdinalMask .

Эту функцию следует сделать страничной, и она всегда должна быть успешной.

Операционная система гарантирует, что эта функция будет следовать режиму синхронизации первого уровня, как определено в разделе Потоки и синхронизация первого уровня.

Дополнительные сведения см. в разделе Изменения TDR в Windows 8.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Персональный компьютер
Верхняя часть d3dkmddi.h
IRQL PASSIVE_LEVEL

См. также раздел

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine