共用方式為


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

UINT 值,指定 OS 是否會針對 DxgkDdiEscape 呼叫,執行 第二層同步處理。 如果驅動程式需要第二層同步處理,且未設定 HardwareAccess 旗標,則驅動程式 DxgkDdiEscape 函式的呼叫應該會失敗。

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

DeviceStatusQuery

如果設定,則呼叫 pfnEscapeCb函式,且 D3DDDICB_ESCAPEPrivateDriverDataSize 成員為 sizeof(D3DDDI_EXECUTIONSTATEESCAPE),Direct3D 執行時間會解譯 D3DDDICB_ESCAPEpPrivateDriverData 成員作為包含 D3DDDI_EXECUTIONSTATEESCAPE 結構的緩衝區指標。 此外,運行時間會將要求的資訊寫入提供的緩衝區,而不是將 DxgkDdiEscape 呼叫至 KMD,以處理 pfnEscapeCb 作為狀態查詢。

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

從 Windows 8.1 開始支援。

如果作系統在 Windows 8.1 之前,或是使用者模式驅動程式是以 OpenAdapter Xxx 初始化,則作系統會忽略此成員,pOpenData->Interface 成員表示 Direct3D 版本 8 或更早版本。

ChangeFrameLatency

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

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

從 Windows 8.1 開始支援。

如果作系統在 Windows 8.1 之前,或是使用者模式驅動程式是以 OpenAdapter Xxx 初始化,則作系統會忽略此成員,pOpenData->Interface 成員表示 Direct3D 版本 8 或更早版本。

NoAdapterSynchronization

Reserved

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

VirtualMachineData

表示從虛擬機呼叫 DxgkDdiEscape。 無法從使用者模式設定此旗標。 從 WDDM 2.2 開始支援。

DriverKnownEscape

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

DriverCommonEscape

私人數據會指向 D3D 執行時間定義的結構。

Reserved2

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

Value

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

言論

如果已設定 ChangeFrameLatency,則只有在:

  • 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