다음을 통해 공유


D3DDDI_ESCAPEFLAGS 구조체(d3dukmdt.h)

D3DDDI_ESCAPEFLAGS 구조는 사용자 모드 디스플레이 드라이버가 디스플레이 미니포트 드라이버와 정보를 공유하는 방법을 식별합니다.

구문

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

운영 체제가 DxgkDdiEscape 호출에 대한 디스플레이 미니포트 드라이버에 대한 두 번째 수준의 동기화를 수행하는지 여부를 지정하는 UINT 값입니다. 드라이버에 두 번째 수준의 동기화가 필요하고 HardwareAccess 플래그가 설정되지 않은 경우 드라이버의 DxgkDdiEscape 함수에 대한 호출이 실패합니다.

Windows 8.1 이 멤버가 설정된 경우 DeviceStatusQueryChangeFrameLatency를 0으로 설정해야 합니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

DeviceStatusQuery

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

이 멤버가 설정되면 HardwareAccessChangeFrameLatency 를 0으로 설정해야 합니다.

Windows 8.1 부터 지원합니다.

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

이 멤버를 설정하는 것은 32비트 멤버(0x00000002)의 두 번째 비트를 설정하는 것과 같습니다.

ChangeFrameLatency

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

이 멤버가 설정되면 HardwareAccessDeviceStatusQuery 를 0으로 설정해야 합니다.

Windows 8.1 부터 지원합니다.

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

이 멤버를 설정하는 것은 32비트 멤버(0x00000004)의 세 번째 비트를 설정하는 것과 같습니다.

NoAdapterSynchronization

Reserved

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 Value 멤버의 나머지 29비트(0xFFFFFFF8)를 0으로 설정하는 것과 같습니다.

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 Value 멤버의 나머지 31비트(0xFFFFFFFE)를 0으로 설정하는 것과 같습니다.

VirtualMachineData

DxgkDdiEscape가 가상 머신에서 호출됨을 나타냅니다.

DriverKnownEscape

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

DriverCommonEscape

프라이빗 데이터 포인트 런타임 정의 구조체입니다.

Reserved2

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

Value

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

설명

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

  • 디스플레이 미니포트 드라이버는 단일 공급업체에서 제공하는 LDA(연결된 어댑터 구성)를 담당합니다.
  • 응용 프로그램은 수명 중 어느 시점에서 디스플레이의 독점적 인 전체 화면 소유권을 촬영하고있다.
  • 앱이 기본 최대 프레임 대기 시간 값 3을 재정의하지 않았습니다.
이러한 조건이 충족되지 않으면 pfnEscapeCb 호출은 E_INVALIDARG 오류 코드를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
머리글 d3dukmdt.h(D3dumddi.h, D3dkmddi.h 포함)

추가 정보

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb