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) |