次の方法で共有


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 呼び出しのディスプレイ ミニポート ドライバーへの同期の 2 番目のレベルを実行するかどうかを指定する UINT 値。 ドライバーが 2 番目のレベルの同期を必要とし、 HardwareAccess フラグが設定されていない場合、ドライバーの DxgkDdiEscape 関数の呼び出しは失敗します。

Windows 8.1以降、このメンバーが設定されている場合は、DeviceStatusQueryChangeFrameLatency を 0 に設定する必要があります。

このメンバーの設定は、32 ビット メンバー (0x00000001) の最初のビットを設定することと同じです。

DeviceStatusQuery

設定されている場合は、pfnEscapeCb 関数が呼び出され、D3DDDICB_ESCAPEPrivateDriverDataSize メンバーは でありsizeof(D3DDDI_EXECUTIONSTATEESCAPE)、Direct3D ランタイムはD3DDDICB_ESCAPEを解釈します。D3DDDI_EXECUTIONSTATEESCAPE構造体を含むバッファーへのポインターとしての pPrivateDriverData メンバー。 さらに、ランタイムは、表示ミニポート ドライバーに DxgkDdiEscape 呼び出しを送信する代わりに、指定されたバッファーに要求された情報を書き込むことで、状態クエリとして pfnEscapeCb を処理します。

このメンバーが設定されている場合は、 HardwareAccessChangeFrameLatency を 0 に設定する必要があります。

Windows 8.1 以降でサポートされます。

オペレーティング システムは、Windows 8.1より前の場合、または pOpenData-Interface> メンバーが Direct3D バージョン 8 以前を示す OpenAdapterXxx 呼び出しでユーザー モード ドライバーが初期化された場合、このメンバーを無視します。

このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。

ChangeFrameLatency

設定されている場合、pfnEscapeCb 関数が呼び出されると、D3DDDICB_ESCAPEPrivateDriverDataSize メンバーは でありsizeof(D3DDDI_FRAMELATENCYESCAPE)、解説の条件も満たされます。Direct3D ランタイムはD3DDDICB_ESCAPEを解釈します。D3DDDI_FRAMELATENCYESCAPE構造体を含むバッファーへのポインターとしての pPrivateDriverData メンバー。 さらに、ランタイムは、ディスプレイ ミニポート ドライバーに DxgkDdiEscape 呼び出しを送信する代わりに、指定されたバッファーに要求された情報を書き込むことで、DirectX グラフィックス カーネル サブシステムの最大フレーム待機時間を変更する要求として pfnEscapeCb を処理します。

このメンバーが設定されている場合は、 HardwareAccessDeviceStatusQuery を 0 に設定する必要があります。

Windows 8.1 以降でサポートされます。

オペレーティング システムは、Windows 8.1より前の場合、または pOpenData-Interface> メンバーが Direct3D バージョン 8 以前を示す OpenAdapterXxx 呼び出しでユーザー モード ドライバーが初期化された場合、このメンバーを無視します。

このメンバーの設定は、32 ビット Value メンバー (0x00000004) の 3 番目のビットを設定することと同じです。

NoAdapterSynchronization

Reserved

このメンバーは予約済みであり、0 に設定する必要があります。 このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 29 ビット (0xFFFFFFF8) ゼロに設定することと同じです。

このメンバーは予約済みであり、0 に設定する必要があります。 このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 31 ビット (0xFFFFFFFE) ゼロに設定することと同じです。

VirtualMachineData

DxgkDdiEscape が仮想マシンから呼び出されることを示します。

DriverKnownEscape

ドライバーのプライベート データは、既知の構造を指しています。

DriverCommonEscape

プライベート データ ポイントのランタイム定義構造。

Reserved2

このメンバーは予約済みであり、0 に設定する必要があります。

Value

情報の共有方法を識別する 1 つの 32 ビット値を保持できる、D3DDDI_ESCAPEFLAGSに含まれる共用体内のメンバー。

注釈

ChangeFrameLatency が設定されている場合、pfnEscapeCb 呼び出しは次の場合にのみ成功します。

  • ディスプレイ ミニポート ドライバーは、1 つのベンダーによって提供されるリンクされたアダプター構成 (LDA) を担当します。
  • アプリは、その有効期間のある時点で、ディスプレイの排他的な全画面表示所有権を取得しました。
  • アプリは、既定の最大フレーム待機時間値 3 をオーバーライドしていません。
これらの条件が満たされない場合、 pfnEscapeCb 呼び出しは E_INVALIDARG エラー コードを返します。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
Header d3dukmdt.h (D3dumddi.h、D3dkmddi.h を含む)

こちらもご覧ください

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb