ユーザー モード ディスプレイ ドライバーによって呼び出される 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 構造体のメンバーを介して、デバイス固有のコールバック関数を表示するためのポインターを提供します。
- PFND3DDDI_ALLOCATECB
- PFND3DDDI_CREATECONTEXTVIRTUALCB
- PFND3DDDI_CREATEHWCONTEXTCB
- PFND3DDDI_CREATEHWQUEUECB
- PFND3DDDI_CREATEOVERLAYCB
- PFND3DDDI_CREATEPAGINGQUEUECB
- PFND3DDDI_CREATESYNCHRONIZATIONOBJECT2CB
- PFND3DDDI_CREATESYNCHRONIZATIONOBJECTCB
- PFND3DDDI_DEALLOCATE2CB
- PFND3DDDI_DEALLOCATECB
- PFND3DDDI_DESTROYCONTEXTCB
- PFND3DDDI_DESTROYHWCONTEXTCB
- PFND3DDDI_DESTROYHWQUEUECB
- PFND3DDDI_DESTROYOVERLAYCB
- PFND3DDDI_DESTROYPAGINGQUEUECB
- PFND3DDDI_DESTROYSYNCHRONIZATIONOBJECTCB
- PFND3DDDI_ESCAPECB
- PFND3DDDI_EVICTCB |
- PFND3DDDI_FLIPOVERLAYCB
- PFND3DDDI_FREEGPUVIRTUALADDRESSCB
- PFND3DDDI_GETMULTISAMPLEMETHODLISTCB
- PFND3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATACB
- PFND3DDDI_LOCK2CB
- PFND3DDDI_LOCKCB
- PFND3DDDI_LOGUMDMARKERCB
- PFND3DDDI_MAKERESIDENTCB
- PFND3DDDI_MAPGPUVIRTUALADDRESSCB
- PFND3DDDI_OFFERALLOCATIONS
- PFND3DDDI_OFFERALLOCATIONS2CB
- PFND3DDDI_PRESENTCB
- PFND3DDDI_QUERYADAPTERINFOCB
- PFND3DDDI_QUERYRESIDENCYCB
- PFND3DDDI_RECLAIMALLOCATIONS2CB
- PFND3DDDI_RECLAIMALLOCATIONS3CB
- PFND3DDDI_RECLAIMALLOCATIONSCB
- PFND3DDDI_RENDERCB
- PFND3DDDI_RESERVEGPUVIRTUALADDRESSCB
- PFND3DDDI_SETASYNCCALLBACKSCB
- PFND3DDDI_SETDISPLAYMODECB
- PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB
- PFND3DDDI_SETPRIORITYCB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECT2CB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMCPUCB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2CB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMGPUCB
- PFND3DDDI_SUBMITCOMMANDCB
- PFND3DDDI_SUBMITCOMMANDTOHWQUEUECB
- PFND3DDDI_SUBMITSIGNALSYNCOBJECTSTOHWQUEUECB
- PFND3DDDI_SUBMITWAITFORSYNCOBJECTSTOHWQUEUECB
- PFND3DDDI_UNLOCK2CB
- PFND3DDDI_UNLOCKCB
- PFND3DDDI_UPDATEALLOCATIONPROPERTYCB
- PFND3DDDI_UPDATEOVERLAYCB
- PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECT2CB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTCB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPUCB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMGPUCB
- PFND3DWDDM2_0DDI_DECODEJPEG
- PFND3DWDDM2_0DDI_ENCODEJPEG
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 以外の可能性がある最大のスロット インデックスを示します。そのため、高い基準値を使用すると、このようなスロット間のトラバーサルが向上します。
- PFND3D10DDI_STATE_GS_CONSTBUF_CB
- PFND3D10DDI_STATE_GS_SAMPLER_CB
- PFND3D10DDI_STATE_GS_SHADER_CB
- PFND3D10DDI_STATE_GS_SRV_CB
- PFND3D10DDI_STATE_IA_INDEXBUF_CB
- PFND3D10DDI_STATE_IA_INPUTLAYOUT_CB
- PFND3D10DDI_STATE_IA_PRIMITIVE_TOPOLOGY_CB
- PFND3D10DDI_STATE_IA_VERTEXBUF_CB
- PFND3D10DDI_STATE_OM_BLENDSTATE_CB
- PFND3D10DDI_STATE_OM_DEPTHSTATE_CB
- PFND3D10DDI_STATE_OM_RENDERTARGETS_CB
- PFND3D10DDI_STATE_PS_CONSTBUF_CB
- PFND3D10DDI_STATE_PS_SAMPLER_CB
- PFND3D10DDI_STATE_PS_SHADER_CB
- PFND3D10DDI_STATE_PS_SRV_CB
- PFND3D10DDI_STATE_RS_RASTSTATE_CB
- PFND3D10DDI_STATE_RS_SCISSOR_CB
- PFND3D10DDI_STATE_RS_VIEWPORTS_CB
- PFND3D10DDI_STATE_SO_TARGETS_CB
- PFND3D10DDI_STATE_TEXTFILTERSIZE_CB
- PFND3D10DDI_STATE_VS_CONSTBUF_CB
- PFND3D10DDI_STATE_VS_SAMPLER_CB
- PFND3D10DDI_STATE_VS_SHADER_CB
- PFND3D10DDI_STATE_VS_SRV_CB
Direct3D ランタイム バージョン 10 カーネル サービス アクセス関数
このセクションでは、Microsoft Direct3D 10 ランタイムの DirectX Graphics Infrastructure (DXGI) コンポーネントがユーザー モード ディスプレイ ドライバーに提供する、カーネル サービス アクセス関数の一覧を示します。 DXGI は、ユーザー モード ディスプレイ ドライバーの CreateDevice(D3D10) 関数の呼び出しで、DXGI_DDI_BASE_CALLBACKS 構造体のメンバーを介して、カーネル サービス アクセス関数へのポインターを提供します。
- PFNDDXGIDDI_PRESENTCB
- PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB
- PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAY1C
- PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB
- PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB
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 以外の可能性がある最大のスロット インデックスを示します。そのため、高い基準値を使用すると、このようなスロット間のトラバーサルが向上します。
- PFND3D11DDI_STATE_CS_CONSTBUF_CB
- PFND3D11DDI_STATE_CS_SAMPLER_CB
- PFND3D11DDI_STATE_CS_SHADER_CB
- PFND3D11DDI_STATE_CS_SRV_CB
- PFND3D11DDI_STATE_CS_UAV_CB
- PFND3D11DDI_STATE_DS_CONSTBUF_CB
- PFND3D11DDI_STATE_DS_SAMPLER_CB
- PFND3D11DDI_STATE_DS_SHADER_CB
- PFND3D11DDI_STATE_DS_SRV_CB
- PFND3D11DDI_STATE_HS_CONSTBUF_CB
- PFND3D11DDI_STATE_HS_SAMPLER_CB
- PFND3D11DDI_STATE_HS_SHADER_CB
- PFND3D11DDI_STATE_HS_SRV_CB
Direct3D ランタイム バージョン 12 以降の関数
Microsoft Direct3D 12 以降のランタイムは、ユーザー モード ディスプレイ ドライバーに以下のコア コールバック関数を提供します。
- PFND3D12DDI_WRITEBUFFERIMMEDIATE_0032
- PFND3D12DDI_VIDEO_PROCESS_FRAME_0032
- PFND3D12DDI_VIDEO_DECODE_FRAME_0032
- PFND3D12DDI_VIDEO_DECODE_FRAME_0030
- PFND3D12DDI_TRANSFORMENCRYPTEDDATA_0030
- PFND3D12DDI_SETVIEWINSTANCEMASK_0033
- PFND3D12DDI_SETPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_OPENPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_OPENCRYPTOSESSIONPOLICY_0030
- PFND3D12DDI_OPENCRYPTOSESSION_0030
- PFND3D12DDI_GETKEYBASEDATA_0030
- PFND3D12DDI_DESTROYVIDEODECODERHEAP_0032
- PFND3D12DDI_DESTROYPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_DESTROYCRYPTOSESSIONPOLICY_0030
- PFND3D12DDI_DESTROYCRYPTOSESSION_0030
- PFND3D12DDI_CREATEVIDEOPROCESSOR_0032
- PFND3D12DDI_CREATEVIDEODECODERHEAP_0033
- PFND3D12DDI_CREATEVIDEODECODERHEAP_0032
- PFND3D12DDI_CREATEVIDEODECODER_0032
- PFND3D12DDI_CREATEPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_CREATEHEAPANDRESOURCE_0030
- PFND3D12DDI_CREATECRYPTOSESSIONPOLICY_0030
- PFND3D12DDI_CREATECRYPTOSESSION_0030
- PFND3D12DDI_CREATE_PROTECTED_SESSION_CB_0030
- PFND3D12DDI_CREATE_PIPELINE_STATE_0033
- PFND3D12DDI_CALCPRIVATEVIDEOPROCESSORSIZE_0032
- PFND3D12DDI_CALCPRIVATEVIDEODECODERSIZE_0032
- PFND3D12DDI_CALCPRIVATEVIDEODECODERHEAPSIZE_0033
- PFND3D12DDI_CALCPRIVATEVIDEODECODERHEAPSIZE_0032
- PFND3D12DDI_CALCPRIVATEPROTECTEDRESOURCESESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATEOPENEDPROTECTEDRESOURCESESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATEOPENEDCRYPTOSESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATEOPENEDCRYPTOSESSIONPOLICYSIZE_0030
- PFND3D12DDI_CALCPRIVATECRYPTOSESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATECRYPTOSESSIONPOLICYSIZE_0030
- PFND3D12DDI_CALC_PRIVATE_PIPELINE_STATE_SIZE_0033
- PFND3D12DDI_CREATEVIDEOPROCESSOR_0043
- PFND3D12DDI_DESTROYVIDEODECODERHEAP_0032
- PFND3D12DDI_CREATEVIDEODECODERHEAP_0033
- PFND3D12DDI_CALCPRIVATEVIDEODECODERHEAP
- PFND3D12DDI_DESTROYVIDEODECODER_0021
- PFND3D12DDI_CALCPRIVATEVIDEODECODER
- PFND3D12DDI_ALLOCATE_CB_0022
- PFND3D12DDI_BEGIN_END_QUERY_0003
- PFND3D12DDI_CALCPRIVATECOMMANDQUEUESIZE_0023
- PFND3D12DDI_CALCPRIVATEVIDEODECODERSIZE_0032
- PFND3D12DDI_CALCPRIVATEVIDEOPROCESSORSIZE_0032
- PFND3D12DDI_CHECKRESOURCEALLOCATIONINFO_0022
- PFND3D12DDI_CHECKEXISITINGRESOURCEALLOCATIONINFO_0022
- PFND3D12DDI_CREATE_PIPELINE_STATE_0021
- PFND3D12DDI_CREATECOMMANDQUEUE_0023
- PFND3D12DDI_CREATEVIDEODECODER_0032
- PFND3D12DDI_CREATEVIDEOPROCESSOR_0032
- PFND3D12DDI_DEALLOCATE_CB_0022
- PFND3D12DDI_DESTROYVIDEODECODER_0021
- PFND3D12DDI_DESTROYVIDEOPROCESSOR_0021
- PFND3D12DDI_GETPAGEABLESIZE
- PFND3D12DDI_RESOLVE_QUERY_DATA
- PFND3D12DDI_RESOURCEBARRIER_0022
- PFND3D12DDI_SET_EXTENDED_FEATURE_CALLBACKS_0021
- PFND3D12DDI_SET_PREDICATION
- PFND3D12DDI_SHADERCACHEGETVALUE_CB_0021
- PFND3D12DDI_SHADERCACHESTOREVALUE_CB_0021
- PFND3D12DDI_VIDEO_DECODE_FRAME
- PFND3D12DDI_VIDEO_DECODER_TRIM_ALLOCATIONS
- PFND3D12DDI_VIDEO_GET_DECODE_BITSTREAM_ENCRYPTION_SCHEME_COUNT
- PFND3D12DDI_VIDEO_GET_DECODE_FORMAT_COUNT
- PFND3D12DDI_VIDEO_GET_DECODE_PROFILE_COUNT
- PFND3D12DDI_VIDEO_GETCAPS
- PFND3D12DDI_VIDEO_PROCESS_FRAME_0032
- PFND3D12DDI_VIDEO_PROCESSOR_TRIM_ALLOCATIONS
- PFND3DWDDM2_0DDI_GETRESOURCELAYOUT
- PFND3DWDDM2_2DDI_CALCPRIVATE_SHADERCACHE_SESSION_SIZE
- PFND3DWDDM2_2DDI_CREATE_SHADERCACHE_SESSION
- PFND3DWDDM2_2DDI_DESTROY_SHADERCACHE_SESSION
- PFND3DWDDM2_2DDI_RELOCATEDEVICEFUNCS
- PFND3DWDDM2_2DDI_SET_SHADERCACHE_SESSION
- PFND3DWDDM2_2DDI_SHADERCACHE_ADDREF_RELEASE_CB
- PFND3DWDDM2_2DDI_SHADERCACHE_GET_VALUE
- PFND3DWDDM2_2DDI_SHADERCACHE_STORE_VALUE