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

UINT 值,指定作業系統是否會對 DxgkDdiEscape 呼叫的顯示迷你埠驅動程序執行第二層同步處理。 如果驅動程式需要第二層同步處理,且未設定 HardwareAccess 旗標,則驅動程式的 DxgkDdiEscape 函式呼叫應該會失敗。

從 Windows 8.1 開始,如果已設定此成員,則 DeviceStatusQueryChangeFrameLatency 必須設定為零。

設定此成員相當於 (0x00000001) 設定 32 位 Value 成員的第一個位。

DeviceStatusQuery

如果已設定,則呼叫 pfnEscapeCb 函式並D3DDDICB_ESCAPEPrivateDriverDataSize 成員是 sizeof(D3DDDI_EXECUTIONSTATEESCAPE),Direct3D 運行時間會解譯D3DDDICB_ESCAPE。pPrivateDriverData 成員做為包含D3DDDI_EXECUTIONSTATEESCAPE結構的緩衝區指標。 此外,運行時間會藉由將要求的資訊寫入提供的緩衝區,而不是將 DxgkDdiEscape 呼叫傳送至顯示迷你埠驅動程式,將 pfnEscapeCb 當做狀態查詢來處理。

如果設定此成員, HardwareAccessChangeFrameLatency 必須設定為零。

從 Windows 8.1 開始支援。

如果操作系統在 Windows 8.1 之前,或使用者模式驅動程式是以 OpenAdapterXxx 呼叫初始化,則操作系統會忽略此成員,其中 pOpenData-Interface> 成員指出 Direct3D 第 8 版或更早版本。

設定此成員相當於 (0x00000002) 設定 32 位 Value 成員的第二個位。

ChangeFrameLatency

如果設定,則呼叫 pfnEscapeCb 函式時,D3DDDICB_ESCAPEPrivateDriverDataSize 成員是 sizeof(D3DDDI_FRAMELATENCYESCAPE) ,而且「備註」中的條件也會符合,Direct3D 運行時間會解譯D3DDDICB_ESCAPE。pPrivateDriverData 成員做為包含D3DDDI_FRAMELATENCYESCAPE結構的緩衝區指標。 此外,運行時間會將 pfnEscapeCb 當做要求來變更 DirectX 圖形核心子系統的最大畫面延遲,方法是將要求的資訊寫入提供的緩衝區,而不是將 DxgkDdiEscape 呼叫傳送至顯示迷你埠驅動程式。

如果已設定此成員, HardwareAccessDeviceStatusQuery 必須設定為零。

從 Windows 8.1 開始支援。

如果操作系統在 Windows 8.1 之前,或使用者模式驅動程式是以 OpenAdapterXxx 呼叫初始化,則操作系統會忽略此成員,其中 pOpenData-Interface> 成員指出 Direct3D 第 8 版或更早版本。

設定此成員相當於 (0x00000004) 設定 32 位 Value 成員的第三個位。

NoAdapterSynchronization

Reserved

這個成員是保留的,而且應該設定為零。 將此成員設定為零相當於將 32 位 Value 成員的剩餘 29 位 (0xFFFFFFF8) 設定為零。

這個成員是保留的,而且應該設定為零。 將此成員設定為零相當於將 32 位 Value 成員的其餘 31 位設定為零 (0xFFFFFFFE) 。

VirtualMachineData

表示從虛擬機呼叫 DxgkDdiEscape

DriverKnownEscape

驅動程式私人數據指向已知的結構。

DriverCommonEscape

私人數據點運行時間定義結構。

Reserved2

這個成員是保留的,而且應該設定為零。

Value

包含在D3DDDI_ESCAPEFLAGS中,可保存一個32位值的成員,可識別如何共享資訊。

備註

如果已設定 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