Поделиться через


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

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

Синтаксис

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

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

Параметры

hAdapter

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

pQueryDependentEngineGroup

[in/out] Структура DXGKARG_QUERYDEPENDENTENGINEGROUP, в которой KMD указывает все узлы, затронутые операцией сброса.

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

DxgkddiQuerydependentenginegroup должен возвращать STATUS_SUCCESS.

Замечания

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

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

Ниже приведен пример вычисления битовой маски в DXGKARG_QUERYDEPENDENTENGINEGROUP.член dependentNodeOrdinalMask. Если исходные значения NodeOrdinal структуры DXGKARG_QUERYDEPENDENTENGINEGROUP и EngineOrdinal имеют значение 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