Поделиться через


структура 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

Указатель на функцию pfnDeмешательOverlayCb , которую драйвер отображения пользовательского режима использует для уничтожения объекта наложения в режиме ядра и остановки отображения наложения.

pfnCreateContextCb

Указатель на функцию pfnCreateContextCb , которую драйвер отображения пользовательского режима использует для создания контекста для отправки запросов.

pfnDestroyContextCb

Указатель на функцию pfnDetextContextCb , которую драйвер отображения пользовательского режима использует для уничтожения контекста, созданного pfnCreateContextCb .

pfnCreateSynchronizationObjectCb

Указатель на функцию pfnCreateSynchronizationObjectCb , которую драйвер отображения пользовательского режима использует для создания объекта синхронизации.

pfnDestroySynchronizationObjectCb

Указатель на функцию pfnDesynchronizationObjectCb , которую драйвер отображения пользовательского режима использует для уничтожения объекта синхронизации, созданного pfnCreateSynchronizationObjectCb .

pfnWaitForSynchronizationObjectCb

Указатель на функцию pfnWaitForSynchronizationObjectCb , которую драйвер отображения пользовательского режима использует для ожидания событий синхронизации, а затем использует для возврата.

pfnSignalSynchronizationObjectCb

Указатель на функцию pfnSignalSynchronizationObjectCb , которую драйвер отображения пользовательского режима использует для сигнализации о том, что события синхронизации больше не принадлежат контексту.

pfnSetAsyncCallbacksCb

Указатель на функцию pfnSetAsyncCallbacksCb , которую драйвер отображения пользовательского режима использует для уведомления среды выполнения Direct3D о том, будет ли среда выполнения запускать или прекращать прием вызовов функций обратного вызова среды выполнения из рабочего потока.

Только версии среды выполнения DirectX 9 и Direct 9L поддерживают функцию pfnSetAsyncCallbacksCb . DirectX 10 и более поздних версий среды выполнения присваивают члену pfnSetAsyncCallbacksCb значение NULL, когда среда выполнения вызывает функцию CreateDevice(D3D10) драйвера отображения пользовательского режима для создания устройства отрисовки.

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

Указатель на функцию pfnDeмешательPagingQueueCb .

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)