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 运行时,运行时是启动还是停止从工作线程接收对运行时回调函数的调用。
只有 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) |