次の方法で共有


User-Mode ディスプレイ ドライバーによって呼び出される Direct3D ランタイム関数

このトピックでは、Microsoft Direct3D ランタイムがユーザー モードのディスプレイ ドライバーに提供する関数の一覧を示します。 これには、関数にアクセスする Direct3D ランタイム カーネル サービスと、Direct3D ランタイム バージョン 10 および 11 関数が含まれます。 これらの関数は、オペレーティング システムが Direct3D ランタイムを通じて実装するユーザー モードの Direct3D ディスプレイ ドライバー インターフェイスの一部です。

Direct3D ランタイム Kernel-Services 関数へのアクセス

Microsoft Direct3D バージョン 9 ランタイムは、ユーザー モード ディスプレイ ドライバーの OpenAdapter 関数の呼び出しで、D3DDDI_ADAPTERCALLBACKS構造体のメンバーを介してアダプター固有のコールバック関数へのポインターを提供します。 The runtime supplies pointers to display device-specific callback functions through members of the D3DDDI_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice function.

Microsoft Direct3D バージョン 10 以降のランタイムは、ユーザー モード ディスプレイ ドライバーの OpenAdapter10 または OpenAdapter10_2 関数の呼び出しで、D3DDDI_ADAPTERCALLBACKS構造体のメンバーを介してアダプター固有のコールバック関数へのポインターを提供します。 The runtime supplies pointers to display device-specific callback functions through members of the D3DDDI_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D パラメーター構造体

関数にアクセスする Direct3D ランタイム カーネル サービスでは、次の構造体が使用されます。 ユーザー モードのディスプレイ ドライバーは、ランタイム関数のパラメーターでこれらの構造体へのポインターを渡します。

  • D3DDDI_UPDATEALLOCPROPERTY
  • D3DDDICB_ALLOCATE
  • D3DDDICB_CREATECONTEXT
  • D3DDDICB_CREATECONTEXTVIRTUAL
  • D3DDDICB_CREATEHWCONTEXT
  • D3DDDICB_CREATEHWQUEUE
  • D3DDDICB_CREATEOVERLAY
  • D3DDDICB_CREATEPAGINGQUEUE
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT2
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT
  • D3DDDICB_DESTROYHWCONTEXT
  • D3DDDICB_DESTROYHWQUEUE
  • D3DDDICB_DEALLOCATE
  • D3DDDICB_DEALLOCATE2
  • D3DDDICB_DESTROYCONTEXT
  • D3DDDICB_DESTROYOVERLAY
  • D3DDDICB_DESTROYSYNCHRONIZATIONOBJECT
  • D3DDDICB_ESCAPE
  • D3DDDICB_EVICT
  • D3DDDICB_FLIPOVERLAY
  • D3DDDICB_GETMULTISAMPLEMETHODLIST
  • D3DDDICB_LOCK
  • D3DDDICB_LOCK2FLAGS
  • D3DDDICB_OFFERALLOCATIONS
  • D3DDDICB_PRESENT
  • D3DDDICB_QUERYADAPTERINFO
  • D3DDDICB_QUERYRESIDENCY
  • D3DDDICB_RECLAIMALLOCATIONS
  • D3DDDICB_RECLAIMALLOCATIONS2
  • D3DDDICB_RENDER
  • D3DDDICB_SETDISPLAYMODE
  • D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT
  • D3DDDICB_SETPRIORITY
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT2
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2
  • D3DDDICB_SUBMITCOMMAND
  • D3DDDICB_SUBMITCOMMANDFLAGS
  • D3DDDICB_SUBMITCOMMANDTOHWQUEUE
  • D3DDDICB_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_UNLOCK
  • D3DDDICB_UNLOCK2
  • D3DDDICB_UPDATEGPUVIRTUALADDRESS
  • D3DDDICB_UPDATEOVERLAY
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT2
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMGPU

Direct3D ランタイム バージョン 10 以降のコア コールバック関数

このセクションでは、Microsoft Direct3D 10 以降のランタイムがユーザー モード ディスプレイ ドライバーに提供するコア コールバック関数について説明します。 The runtime supplies pointers to core callback functions through members of the D3D10DDI_CORELAYER_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D ランタイム バージョン 10 コントロール コールバック関数

次に、Microsoft Direct3D 10 以降のランタイムが、D3D10DDI_CORELAYER_DEVICECALLBACKS構造体を介してユーザー モードディスプレイ ドライバーに提供するコントロール コールバック関数の一覧を示します。

Direct3D ランタイム バージョン 10 State-Refresh コールバック関数

Microsoft Direct3D 10 ランタイムが、D3D10DDI_CORELAYER_DEVICECALLBACKS構造体を介してユーザー モード ディスプレイ ドライバーに提供する状態更新コールバック関数の一覧を次に示します。

Direct3D 10 ランタイムは、現在バインドされている状態オブジェクトをアプリケーション用にキャッシュするため、ランタイムは、オーバーヘッドの少ないユーザー モードディスプレイ ドライバー用に現在バインドされている状態オブジェクトもキャッシュします。 ユーザー モード ディスプレイ ドライバーが状態更新コールバック関数に対して行う呼び出しごとに、Direct3D 10 ランタイムは、ドライバーの呼び出し元のコードに戻る前に、同じ実行スレッド内のドライバー状態関数に対応する呼び出しを行います。 パフォーマンスを向上させるために、状態更新コールバック関数はパラメーターの検証を実行しません。

状態更新コールバック関数は、ステートレス ドライバーを開発したり、コマンド バッファーのプリアンブル データを構築したりする場合に便利です。 状態更新コールバック関数を使用すると、Direct3D 10 ランタイムが保持する高基準値のメリットをユーザー モードディスプレイ ドライバーで利用することもできます。 ハイウォーターマークは、NULL でない可能性のある最大のスロットインデックスを示します。そのため、ハイウォーターマークを使用すると、このようなスロット間のトラバーサルが向上します。

Direct3D ランタイム バージョン 10 Kernel-Services 関数へのアクセス

このセクションでは、Microsoft Direct3D 10 ランタイムの DirectX グラフィックス インフラストラクチャ (DXGI) コンポーネントがユーザー モード ディスプレイ ドライバーに提供する関数にアクセスするカーネル サービスの一覧を示します。 DXGI supplies pointers to kernel-services accessing functions through members of the DXGI_DDI_BASE_CALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D ランタイム バージョン 11 関数

このセクションでは、Microsoft Direct3D 11 以降のランタイムがユーザー モード ディスプレイ ドライバーに提供するコア コールバック関数について説明します。 The runtime supplies pointers to core callback functions through members of the D3D11DDI_CORELAYER_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D ランタイム バージョン 11 コントロール コールバック関数

このセクションでは、Microsoft Direct3D 11 以降のランタイムがユーザー モード ディスプレイ ドライバーに提供する追加のコントロール コールバック関数の一覧を示します。

Direct3D ランタイム バージョン 11 State-Refresh コールバック関数

このセクションでは、Microsoft Direct3D バージョン 11 以降のランタイムがユーザー モード ディスプレイ ドライバーに提供する追加の状態更新コールバック関数の一覧を示します。

Direct3D 11 ランタイムは現在バインドされている状態オブジェクトをアプリケーション用にキャッシュするため、ランタイムは、オーバーヘッドの少ないユーザー モードディスプレイ ドライバー用に現在バインドされている状態オブジェクトもキャッシュします。 ユーザー モード ディスプレイ ドライバーが状態更新コールバック関数に対して行う呼び出しごとに、Direct3D 11 ランタイムは、ドライバーの呼び出し元のコードに戻る前に、同じ実行スレッド内のドライバー状態関数に対応する呼び出しを行います。 パフォーマンスを向上させるために、状態更新コールバック関数はパラメーターの検証を実行しません。

状態更新コールバック関数は、ステートレス ドライバーを開発したり、コマンド バッファーのプリアンブル データを構築したりする場合に便利です。 状態更新コールバック関数を使用すると、ユーザー モードのディスプレイ ドライバーは、Direct3D 11 ランタイムが保持する高基準値の恩恵を受けることができます。 ハイウォーターマークは、NULL でない可能性のある最大のスロットインデックスを示します。そのため、ハイウォーターマークを使用すると、このようなスロット間のトラバーサルが向上します。

Direct3D ランタイム バージョン 12 以降の関数

Microsoft Direct3D 12 以降のランタイムは、ユーザー モード ディスプレイ ドライバーに次のコア コールバック関数を提供します。

See also

DXGI DDI のサポート

マルチプレーン オーバーレイのサポート

ユーザー モード ディスプレイ ドライバーによって実装される Direct3D 関数

Direct3D レンダリングのパフォーマンスの向上