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이고 노드 1이 재설정될 때 식별자 2와 4가 있는 추가 노드도 다시 설정되면 드라이버는 DependentNodeOrdinalMask의 이진 값을 10110으로 설정하거나 16진수 표기법으로 0x16 합니다. 인덱스 값 EngineOrdinal 은 모든 종속 노드에 대해 동일한 것으로 간주됩니다. 다시 설정되는 노드는 DependentNodeOrdinalMask 비트 마스크에 포함됩니다.

이 함수는 페이지 가능해야 하며 항상 성공해야 합니다.

운영 체제는 이 함수가 스레딩 및 동기화 첫 번째 수준에 정의된 대로 첫 번째 수준 동기화 모드를 따르도록 보장합니다.

자세한 내용은 Windows 8 TDR 변경 내용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 데스크톱
머리글 d3dkmddi.h
IRQL PASSIVE_LEVEL

추가 정보

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine