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 函数的指针,用户模式显示驱动程序使用该函数将 present 命令提交到显示微型端口驱动程序。

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 运行时运行时是启动还是停止接收来自工作线程的运行时回调函数的调用。

只有 DirectX 9 和 Direct 9L 版本的运行时支持 pfnSetAsyncCallbacksCb 函数。 当运行时调用用户模式显示驱动程序的 CreateDevice (D3D10) 函数来创建呈现设备时,DirectX 10 及更高版本的运行时将 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 及更高版本的用户模式显示驱动程序调用以记录 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回调函数 指针。

注解

可以在 d3dumddi.h 中找到D3DDDI_DEVICECALLBACKS成员指向的回调函数的声明。

要求

要求
最低受支持的客户端 Windows Vista
标头 d3dumddi.h (包括 D3dumddi.h)