다음을 통해 공유


DXGKDDI_QUERYDEPENDENTENGINEGROUP 콜백 함수(d3dkmddi.h)

DxgkrnlGPU 스케줄러는 DxgkddiQuerydependentenginegroup 호출하여 실제 디스플레이 어댑터에서 노드의 종속성을 쿼리합니다.

통사론

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

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

매개 변수

hAdapter

[in] 디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버는 이전에 DxgkDdiAddDevice 함수의 MiniportDeviceContext 출력 매개 변수의 DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.

pQueryDependentEngineGroup

[in/out] KMD가 다시 설정 작업의 영향을 받는 모든 노드를 지정하는 DXGKARG_QUERYDEPENDENTENGINEGROUP 구조체입니다.

반환 값

DxgkddiQuerydependentenginegroupSTATUS_SUCCESS반환해야 합니다.

발언

DxgkrnlGPU 스케줄러는 이 함수를 호출하여 엔진 재설정 요청의 영향을 받는 모든 실제 어댑터(엔진)에 대한 설명을 가져옵니다. 다시 설정 프로세스에 영향을 줄 수 있는 여러 엔진 간에 종속성이 있는 하드웨어 아키텍처에 대한 사용자 환경을 개선하는 데 도움이 됩니다. 영향을 받는 모든 노드는 엔진 선호도 값이 같아야 합니다. (Windows 8TDR 변경 내용의 엔진 선호도 토론을 참조하세요.)

GPU 스케줄러는 DxgkDdiResetEngine호출할 때마다 DxgkDdiQueryDependentEngineGroup 호출합니다. GPU 스케줄러는 디스플레이 미니포트 드라이버가 모든 종속 엔진의 선점 작업을 완료할 때까지 500밀리초를 기다립니다. 드라이버가 선점 작업을 완료할 수 없는 엔진의 경우 GPU 스케줄러는 엔진 서수 값에 따라 순차적으로 DxgkDdiResetEngine 함수를 호출합니다.

다음은 DXGKARG_QUERYDEPENDENTENGINEGROUP비트 마스크를 계산하는 방법의 예입니다.DependentNodeOrdinalMask 멤버입니다. DXGKARG_QUERYDEPENDENTENGINEGROUP 구조체의 NodeOrdinalEngineOrdinal 멤버의 원래 값이 1과 0이면 각각 식별자가 2와 4인 추가 노드는 노드 1이 다시 설정되면 다시 설정되고, 드라이버는 DependentNodeOrdinalMask 10110으로 설정하거나 16진수 표기법으로 0x16 합니다. EngineOrdinal 인덱스 값은 모든 종속 노드에서 동일한 것으로 간주됩니다. 재설정되는 노드는 DependentNodeOrdinalMask 비트 마스크에 포함됩니다.

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

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

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

요구 사항

요구
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 바탕 화면
헤더 d3dkmddi.h
IRQL PASSIVE_LEVEL

참고 항목

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine