次の方法で共有


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

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

Direct3D ランタイム カーネル サービス アクセス関数

Microsoft Direct3D バージョン 9 ランタイムは、ユーザー モード ディスプレイ ドライバーの OpenAdapter 関数の呼び出しで、D3DDDI_ADAPTERCALLBACKS 構造体のメンバーを介して、アダプター固有のコールバック関数へのポインターを提供します。 ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateDevice 関数の呼び出しで、D3DDDI_DEVICECALLBACKS 構造体のメンバーを介して、デバイス固有のコールバック関数を表示するためのポインターを提供します。

Microsoft Direct3D バージョン 10 以降のランタイムは、ユーザー モード ディスプレイ ドライバーの OpenAdapter10 関数または OpenAdapter10_2 関数の呼び出しで、D3DDDI_ADAPTERCALLBACKS 構造体のメンバーを介して、アダプター固有のコールバック関数へのポインターを提供します。 ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateDevice(D3D10) 関数の呼び出しで、D3DDDI_DEVICECALLBACKS 構造体のメンバーを介して、デバイス固有のコールバック関数を表示するためのポインターを提供します。

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 以降のランタイムがユーザー モード ディスプレイ ドライバーに提供する、コア コールバック関数について説明します。 ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateDevice(D3D10) 関数の呼び出しで、D3D10DDI_CORELAYER_DEVICECALLBACKS 構造体のメンバーを介して、デバイス固有のコア コールバック関数へのポインターを提供します。

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

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

Direct3D ランタイム バージョン 10 の状態更新コールバック関数

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

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

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

Direct3D ランタイム バージョン 10 カーネル サービス アクセス関数

このセクションでは、Microsoft Direct3D 10 ランタイムの DirectX Graphics Infrastructure (DXGI) コンポーネントがユーザー モード ディスプレイ ドライバーに提供する、カーネル サービス アクセス関数の一覧を示します。 DXGI は、ユーザー モード ディスプレイ ドライバーの CreateDevice(D3D10) 関数の呼び出しで、DXGI_DDI_BASE_CALLBACKS 構造体のメンバーを介して、カーネル サービス アクセス関数へのポインターを提供します。

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

このセクションでは、Microsoft Direct3D 11 以降のランタイムがユーザー モード ディスプレイ ドライバーに提供する、コア コールバック関数について説明します。 ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateDevice(D3D10) 関数の呼び出しで、D3D11DDI_CORELAYER_DEVICECALLBACKS 構造体のメンバーを介して、デバイス固有のコア コールバック関数へのポインターを提供します。

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

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

Direct3D ランタイム バージョン 11 の状態更新コールバック関数

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

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

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

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

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

関連項目

DXGI DDI のサポート

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

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

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