次の方法で共有


D3DDDI_DEVICECALLBACKS構造体 (d3dumddi.h)

D3DDDI_DEVICECALLBACKS 構造体には、ユーザー モード ディスプレイ ドライバーで使用できる Microsoft Direct3D ランタイム コールバック関数が含まれています。

構文

typedef struct _D3DDDI_DEVICECALLBACKS {
  PFND3DDDI_ALLOCATECB                            pfnAllocateCb;
  PFND3DDDI_DEALLOCATECB                          pfnDeallocateCb;
  PFND3DDDI_SETPRIORITYCB                         pfnSetPriorityCb;
  PFND3DDDI_QUERYRESIDENCYCB                      pfnQueryResidencyCb;
  PFND3DDDI_SETDISPLAYMODECB                      pfnSetDisplayModeCb;
  PFND3DDDI_PRESENTCB                             pfnPresentCb;
  PFND3DDDI_RENDERCB                              pfnRenderCb;
  PFND3DDDI_LOCKCB                                pfnLockCb;
  PFND3DDDI_UNLOCKCB                              pfnUnlockCb;
  PFND3DDDI_ESCAPECB                              pfnEscapeCb;
  PFND3DDDI_CREATEOVERLAYCB                       pfnCreateOverlayCb;
  PFND3DDDI_UPDATEOVERLAYCB                       pfnUpdateOverlayCb;
  PFND3DDDI_FLIPOVERLAYCB                         pfnFlipOverlayCb;
  PFND3DDDI_DESTROYOVERLAYCB                      pfnDestroyOverlayCb;
  PFND3DDDI_CREATECONTEXTCB                       pfnCreateContextCb;
  PFND3DDDI_DESTROYCONTEXTCB                      pfnDestroyContextCb;
  PFND3DDDI_CREATESYNCHRONIZATIONOBJECTCB         pfnCreateSynchronizationObjectCb;
  PFND3DDDI_DESTROYSYNCHRONIZATIONOBJECTCB        pfnDestroySynchronizationObjectCb;
  PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTCB        pfnWaitForSynchronizationObjectCb;
  PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB         pfnSignalSynchronizationObjectCb;
  PFND3DDDI_SETASYNCCALLBACKSCB                   pfnSetAsyncCallbacksCb;
  PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB       pfnSetDisplayPrivateDriverFormatCb;
  PFND3DDDI_OFFERALLOCATIONSCB                    pfnOfferAllocationsCb;
  PFND3DDDI_RECLAIMALLOCATIONSCB                  pfnReclaimAllocationsCb;
  PFND3DDDI_CREATESYNCHRONIZATIONOBJECT2CB        pfnCreateSynchronizationObject2Cb;
  PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECT2CB       pfnWaitForSynchronizationObject2Cb;
  PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECT2CB        pfnSignalSynchronizationObject2Cb;
  PFND3DDDI_PRESENTMULTIPLANEOVERLAYCB            pfnPresentMultiPlaneOverlayCb;
  PFND3DDDI_LOGUMDMARKERCB                        pfnLogUMDMarkerCb;
  PFND3DDDI_MAKERESIDENTCB                        pfnMakeResidentCb;
  PFND3DDDI_EVICTCB                               pfnEvictCb;
  PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPUCB pfnWaitForSynchronizationObjectFromCpuCb;
  PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMCPUCB  pfnSignalSynchronizationObjectFromCpuCb;
  PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMGPUCB pfnWaitForSynchronizationObjectFromGpuCb;
  PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMGPUCB  pfnSignalSynchronizationObjectFromGpuCb;
  PFND3DDDI_CREATEPAGINGQUEUECB                   pfnCreatePagingQueueCb;
  PFND3DDDI_DESTROYPAGINGQUEUECB                  pfnDestroyPagingQueueCb;
  PFND3DDDI_LOCK2CB                               pfnLock2Cb;
  PFND3DDDI_UNLOCK2CB                             pfnUnlock2Cb;
  PFND3DDDI_INVALIDATECACHECB                     pfnInvalidateCacheCb;
  PFND3DDDI_RESERVEGPUVIRTUALADDRESSCB            pfnReserveGpuVirtualAddressCb;
  PFND3DDDI_MAPGPUVIRTUALADDRESSCB                pfnMapGpuVirtualAddressCb;
  PFND3DDDI_FREEGPUVIRTUALADDRESSCB               pfnFreeGpuVirtualAddressCb;
  PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB             pfnUpdateGpuVirtualAddressCb;
  PFND3DDDI_CREATECONTEXTVIRTUALCB                pfnCreateContextVirtualCb;
  PFND3DDDI_SUBMITCOMMANDCB                       pfnSubmitCommandCb;
  PFND3DDDI_DEALLOCATE2CB                         pfnDeallocate2Cb;
  PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2CB pfnSignalSynchronizationObjectFromGpu2Cb;
  PFND3DDDI_RECLAIMALLOCATIONS2CB                 pfnReclaimAllocations2Cb;
  PFND3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATACB pfnGetResourcePresentPrivateDriverDataCb;
  PFND3DDDI_UPDATEALLOCATIONPROPERTYCB            pfnUpdateAllocationPropertyCb;
  PFND3DDDI_OFFERALLOCATIONS2CB                   pfnOfferAllocations2Cb;
  PFND3DDDI_RECLAIMALLOCATIONS3CB                 pfnReclaimAllocations3Cb;
  PFND3DDDI_SYNCTOKENCB                           pfnAcquireResourceCb;
  PFND3DDDI_SYNCTOKENCB                           pfnReleaseResourceCb;
  PFND3DDDI_CREATEHWCONTEXTCB                     pfnCreateHwContextCb;
  PFND3DDDI_DESTROYHWCONTEXTCB                    pfnDestroyHwContextCb;
  PFND3DDDI_CREATEHWQUEUECB                       pfnCreateHwQueueCb;
  PFND3DDDI_DESTROYHWQUEUECB                      pfnDestroyHwQueueCb;
  PFND3DDDI_SUBMITCOMMANDTOHWQUEUECB              pfnSubmitCommandToHwQueueCb;
  PFND3DDDI_SUBMITWAITFORSYNCOBJECTSTOHWQUEUECB   pfnSubmitWaitForSyncObjectsToHwQueueCb;
  PFND3DDDI_SUBMITSIGNALSYNCOBJECTSTOHWQUEUECB    pfnSubmitSignalSyncObjectsToHwQueueCb;
  PFND3DDDI_SUBMITPRESENTBLTTOHWQUEUECB           pfnSubmitPresentBltToHwQueueCb;
  PFND3DDDI_SUBMITPRESENTTOHWQUEUECB              pfnSubmitPresentToHwQueueCb;
  PFND3DDDI_SUBMITHISTORYSEQUENCECB               pfnSubmitHistorySequenceCb;
} D3DDDI_DEVICECALLBACKS;

メンバーズ

pfnAllocateCb

pfnAllocateCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、Direct3D ランタイムがドライバーで使用するメモリ割り当てを作成することを要求するために使用します。

pfnDeallocateCb

pfnDeallocateCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーは、以前に割り当てられた Direct3D ランタイムの空きメモリを要求するために使用します。

pfnSetPriorityCb

pfnSetPriorityCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーは、リソースまたは割り当ての一覧の優先順位を設定するために使用します。

pfnQueryResidencyCb

pfnQueryResidencyCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーは、リソースまたは割り当ての一覧の常駐状態を照会するために使用します。

pfnSetDisplayModeCb

pfnSetDisplayModeCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーは、表示の割り当てを設定するために使用します。

pfnPresentCb

pfnPresentCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、ディスプレイ ミニポート ドライバーに現在のコマンドを送信するために使用します。

pfnRenderCb

pfnRenderCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、ディスプレイ ミニポート ドライバーにコマンド バッファーを送信するために使用します。

pfnLockCb

pfnLockCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、ディスプレイ ミニポート ドライバーのロックを要求するために使用します。 このロックは、ユーザー モード ディスプレイ ドライバーでは完全には処理できません。

pfnUnlockCb

pfnUnlockCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、ロック解除のためにディスプレイ ミニポート ドライバーを呼び出すために使用します。 このロック解除は、ユーザー モード ディスプレイ ドライバーでは完全には処理できません。

pfnEscapeCb

pfnEscapeCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、ディスプレイ ミニポート ドライバーと情報を共有するために使用します。

pfnCreateOverlayCb

pfnCreateOverlayCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーは、カーネル モード オーバーレイ オブジェクトを作成して表示するために使用します。

pfnUpdateOverlayCb

pfnUpdateOverlayCb 関数へのポインター。これは、ユーザー モードのディスプレイ ドライバーがカーネル モード オーバーレイ オブジェクトを変更するために使用します。

pfnFlipOverlayCb

pfnFlipOverlayCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーは、オーバーレイに表示される割り当てを変更するために使用します。

pfnDestroyOverlayCb

pfnDestroyOverlayCb 関数へのポインター。ユーザー モードのディスプレイ ドライバーは、カーネル モードのオーバーレイ オブジェクトを破棄し、オーバーレイの表示を停止するために使用します。

pfnCreateContextCb

pfnCreateContextCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、要求を送信するコンテキストを作成するために使用します。

pfnDestroyContextCb

pfnDestroyContextCb 関数へのポインター。ユーザー モードのディスプレイ ドライバーは、pfnCreateContextCb 作成 コンテキストを破棄するために使用します。

pfnCreateSynchronizationObjectCb

pfnCreateSynchronizationObjectCb 関数へのポインター。ユーザー モード ディスプレイ ドライバーが同期オブジェクトの作成に使用します。

pfnDestroySynchronizationObjectCb

pfnDestroySynchronizationObjectCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、pfnCreateSynchronizationObjectCb 作成 同期オブジェクトを破棄するために使用します。

pfnWaitForSynchronizationObjectCb

pfnWaitForSynchronizationObjectCb 関数へのポインター。ユーザー モードのディスプレイ ドライバーは、同期イベントが発生するまで待機し、返すために使用します。

pfnSignalSynchronizationObjectCb

pfnSignalSynchronizationObjectCb 関数へのポインター。ユーザー モードディスプレイ ドライバーは、同期イベントがコンテキストによって所有されなくなったことを通知するために使用します。

pfnSetAsyncCallbacksCb

pfnSetAsyncCallbacksCb 関数へのポインター。ランタイムがワーカー スレッドからランタイムのコールバック関数の呼び出しを開始または停止するかどうかを Direct3D ランタイムに通知するためにユーザー モードディスプレイ ドライバーが使用します。

pfnSetAsyncCallbacksCb 関数をサポートするのは、DirectX 9 および Direct 9L バージョンのランタイムだけです。 DirectX 10 以降のバージョンのランタイムは、レンダリング デバイスを作成するためにユーザー モード ディスプレイ ドライバーの CreateDevice(D3D10) 関数を呼び出すときに、pfnSetAsyncCallbacksCb メンバーを NULL に設定します。

pfnSetDisplayPrivateDriverFormatCb

pfnSetDisplayPrivateDriverFormatCb ユーザー モード ディスプレイ ドライバーが共有プライマリ サーフェスの形式を変更するために使用する関数へのポインター。

pfnOfferAllocationsCb

pfnOfferAllocationsCb 関数へのポインター。WDDM 1.2 以降のユーザー モードディスプレイ ドライバーが呼び出して、再利用のためにビデオ メモリ割り当てを提供します。

Windows 8 以降でサポートされています。

pfnReclaimAllocationsCb

pfnReclaimAllocationsCb 関数へのポインター。WDDM 1.2 以降のユーザー モードディスプレイ ドライバーは、以前に再利用のために提供されていたビデオ メモリ割り当てへのアクセスを再利用するために呼び出します。

Windows 8 以降でサポートされています。

pfnCreateSynchronizationObject2Cb

pfnCreateSynchronizationObject2Cb 関数へのポインター。WDDM 1.2 以降のユーザー モードディスプレイ ドライバーは、GPU 同期オブジェクトを作成するために使用します。

Windows 8 以降でサポートされています。

pfnWaitForSynchronizationObject2Cb

pfnWaitForSynchronizationObject2Cb 関数へのポインター。WDDM 1.2 以降のユーザー モード ディスプレイ ドライバーは、GPU 同期イベントが発生するのを待機し、返すために使用します。

Windows 8 以降でサポートされています。

pfnSignalSynchronizationObject2Cb

pfnSignalSynchronizationObject2Cb 関数へのポインター。WDDM 1.2 以降のユーザー モード ディスプレイ ドライバーは、GPU 同期イベントがコンテキストによって所有されなくなったことを通知するために使用します。

Windows 8 以降でサポートされています。

pfnPresentMultiPlaneOverlayCb

pfnPresentMultiPlaneOverlayCb (D3D) 関数へのポインター。WDDM 1.3 以降のユーザー モードディスプレイ ドライバーは、ソースマルチプレーン オーバーレイ割り当てから宛先割り当てにコンテンツをコピーするために使用します。

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

pfnLogUMDMarkerCb

pfnLogUMDMarkerCb 関数へのポインター。WDDM 1.3 以降のユーザー モードディスプレイ ドライバーが呼び出して、カスタム イベント トレーシング for Windows (ETW) マーカー イベントをログに記録します。

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

pfnMakeResidentCb

pfnMakeResidentCb 関数へのポインター。

pfnEvictCb

pfnEvictCb 関数へのポインター。

pfnWaitForSynchronizationObjectFromCpuCb

pfnWaitForSynchronizationObjectFromCpuCb 関数へのポインター。

pfnSignalSynchronizationObjectFromCpuCb

pfnSignalSynchronizationObjectFromCpuCb 関数へのポインター。

pfnWaitForSynchronizationObjectFromGpuCb

pfnWaitForSynchronizationObjectFromGpuCb 関数へのポインター。

pfnSignalSynchronizationObjectFromGpuCb

pfnSignalSynchronizationObjectFromGpuCb 関数へのポインター。

pfnCreatePagingQueueCb

pfnCreatePagingQueueCb 関数へのポインター。

pfnDestroyPagingQueueCb

pfnDestroyPagingQueueCb 関数へのポインター。

pfnLock2Cb

pfnLock2Cb 関数へのポインター。

pfnUnlock2Cb

pfnUnlock2Cb 関数へのポインター。

pfnInvalidateCacheCb

pfnInvalidateCacheCb 関数へのポインター。

pfnReserveGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb 関数へのポインター。

pfnMapGpuVirtualAddressCb

pfnMapGpuVirtualAddressCb 関数へのポインター。

pfnFreeGpuVirtualAddressCb

pfnFreeGpuVirtualAddressCb 関数へのポインター。

pfnUpdateGpuVirtualAddressCb

pfnUpdateGpuVirtualAddressCb 関数へのポインター。

pfnCreateContextVirtualCb

pfnCreateContextVirtualCb 関数へのポインター。

pfnSubmitCommandCb

pfnSubmitCommandCb 関数へのポインター。

pfnDeallocate2Cb

pfnDeallocate2Cb 関数へのポインター。

pfnSignalSynchronizationObjectFromGpu2Cb

pfnSignalSynchronizationObjectFromGpu2Cb 関数へのポインター。

pfnReclaimAllocations2Cb

pfnReclaimAllocations2Cb 関数へのポインター。

pfnGetResourcePresentPrivateDriverDataCb

pfnGetResourcePresentPrivateDriverDataCb 関数へのポインター。

pfnUpdateAllocationPropertyCb

pfnUpdateAllocationPropertyCb 関数へのポインター。

pfnOfferAllocations2Cb

pfnOfferAllocations2Cb 関数へのポインター。

pfnReclaimAllocations3Cb

pfnReclaimAllocations3Cb 関数へのポインター。

pfnAcquireResourceCb

pfnReleaseResourceCb

pfnCreateHwContextCb

PFND3DDDI_CREATEHWCONTEXTCB コールバック関数へのポインター。

pfnDestroyHwContextCb

PFND3DDDI_DESTROYHWCONTEXTCB コールバック関数へのポインター。

pfnCreateHwQueueCb

PFND3DDDI_CREATEHWQUEUECB コールバック関数へのポインター。

pfnDestroyHwQueueCb

PFND3DDDI_DESTROYHWQUEUECB コールバック関数へのポインター。

pfnSubmitCommandToHwQueueCb

PFND3DDDI_SUBMITCOMMANDTOHWQUEUECB コールバック関数へのポインター。

pfnSubmitWaitForSyncObjectsToHwQueueCb

PFND3DDDI_SUBMITWAITFORSYNCOBJECTSTOHWQUEUECB コールバック関数へのポインター。

pfnSubmitSignalSyncObjectsToHwQueueCb

PFND3DDDI_SUBMITSIGNALSYNCOBJECTSTOHWQUEUECB コールバック関数へのポインター。

pfnSubmitPresentBltToHwQueueCb

PFND3DDDI_SUBMITPRESENTBLTTOHWQUEUECB コールバック関数へのポインター。

pfnSubmitPresentToHwQueueCb

PFND3DDDI_SUBMITPRESENTTOHWQUEUECB コールバック関数へのポインター。

pfnSubmitHistorySequenceCb

PFND3DDDI_SUBMITHISTORYSEQUENCECB コールバック関数へのポインター。

備考

メンバーが指 D3DDDI_DEVICECALLBACKS コールバック関数の宣言は、d3dumddi.hにあります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ヘッダー d3dumddi.h (D3dumddi.h を含む)