다음을 통해 공유


D3DDDI_ESCAPEFLAGS 구조체(d3dukmdt.h)

D3DDDI_ESCAPEFLAGS 구조는 사용자 모드 표시 드라이버(UMD) 또는 클라이언트 드라이버가 KMD(커널 모드 디스플레이 미니포트 드라이버)와 정보를 공유하는 방법을 식별합니다.

통사론

typedef struct _D3DDDI_ESCAPEFLAGS {
  union {
    struct {
      UINT HardwareAccess : 1;
      UINT DeviceStatusQuery : 1;
      UINT ChangeFrameLatency : 1;
      UINT NoAdapterSynchronization : 1;
#if ...
      UINT Reserved : 1;
      UINT VirtualMachineData : 1;
      UINT DriverKnownEscape : 1;
      UINT DriverCommonEscape : 1;
#if ...
      UINT Reserved2 : 24;
#else
      UINT Reserved2 : 26;
#endif
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
} D3DDDI_ESCAPEFLAGS;

회원

HardwareAccess

OS가 DxgkDdiEscape 호출에 대해 KMD에 두 번째 동기화 수행할지 여부를 지정하는 UINT 값입니다. 드라이버에 두 번째 수준의 동기화가 필요하고 HardwareAccess 플래그가 설정되지 않은 경우 드라이버의 DxgkDdiEscape 함수에 대한 호출이 실패합니다.

Windows 8.1부터 이 멤버가 설정된 경우 DeviceStatusQuery ChangeFrameLatency 0으로 설정해야 합니다.

DeviceStatusQuery

설정된 경우 pfnEscapeCb 함수가 호출되고 D3DDDICB_ESCAPE. PrivateDriverDataSize멤버가 sizeof(D3DDDI_EXECUTIONSTATEESCAPE) Direct3D 런타임은 D3DDDICB_ESCAPE해석합니다. pPrivateDriverData멤버를 D3DDDI_EXECUTIONSTATEESCAPE 구조가 포함된 버퍼에 대한 포인터로. 또한 런타임은 DxgkDdiEscape 호출을 KMD에 보내는 대신 제공된 버퍼에 요청된 정보를 작성하여 pfnEscapeCb 상태 쿼리로 처리합니다.

이 멤버가 설정된 경우 HardwareAccessChangeFrameLatency 0으로 설정해야 합니다.

Windows 8.1부터 지원됩니다.

운영 체제는 Windows 8.1 이전이거나 pOpenData가 OpenAdapterXxx 호출을 사용하여 사용자 모드 드라이버를 초기화한 경우 이 멤버를 무시합니다.>Interface 멤버는 Direct3D 버전 8 이하를 나타냅니다.

ChangeFrameLatency

설정된 경우 pfnEscapeCb 함수가 호출되면 D3DDDICB_ESCAPE. PrivateDriverDataSize멤버가 sizeof(D3DDDI_FRAMELATENCYESCAPE) 있고 주의 조건도 충족될 Direct3D 런타임은 D3DDDICB_ESCAPE해석합니다. pPrivateDriverData멤버를 D3DDDI_FRAMELATENCYESCAPE 구조가 포함된 버퍼에 대한 포인터로. 또한 런타임은 DxgkDdiEscape KMD 호출을 보내는 대신 제공된 버퍼에 요청된 정보를 작성하여 DirectX 그래픽 커널 하위 시스템의 최대 프레임 대기 시간을 변경하기 위한 요청으로 pfnEscapeCb 처리합니다.

이 멤버가 설정된 경우 HardwareAccessDeviceStatusQuery 0으로 설정해야 합니다.

Windows 8.1부터 지원됩니다.

운영 체제는 Windows 8.1 이전이거나 pOpenData가 OpenAdapterXxx 호출을 사용하여 사용자 모드 드라이버를 초기화한 경우 이 멤버를 무시합니다.>Interface 멤버는 Direct3D 버전 8 이하를 나타냅니다.

NoAdapterSynchronization

Reserved

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

VirtualMachineData

DxgkDdiEscape 가상 머신에서 호출됨을 나타냅니다. 이 플래그는 사용자 모드에서 설정할 수 없습니다. WDDM 2.2부터 지원됨

DriverKnownEscape

드라이버 프라이빗 데이터는 잘 알려진 구조를 가리킵니다.

DriverCommonEscape

프라이빗 데이터는 D3D 런타임 정의 구조를 가리킵니다.

Reserved2

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

Value

정보를 공유하는 방법을 식별하는 하나의 32비트 값을 보유할 수 있는 D3DDDI_ESCAPEFLAGS 포함된 공용 구조체의 멤버입니다.

발언

ChangeFrameLatency 설정된 경우 다음 경우에만 pfnEscapeCb 호출이 성공합니다.

  • KMD는 단일 공급업체에서 제공하는 LDA(연결된 어댑터 구성)를 담당합니다.
  • 앱은 수명 중 어느 시점에서 디스플레이의 독점적인 전체 화면 소유권을 가져갔습니다.
  • 앱이 기본 최대 프레임 대기 시간 값 3을 재정의하지 않았습니다.

이러한 조건이 충족되지 않으면 pfnEscapeCb 호출은 E_INVALIDARG 오류 코드를 반환합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista(WDDM 1.0)
헤더 d3dukmdt.h(D3dumddi.h, D3dkmddi.h 포함)

참고 항목

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb