Compartir a través de


estructura D3DDDI_DEVICECALLBACKS (d3dumddi.h)

La estructura D3DDDI_DEVICECALLBACKS contiene funciones de devolución de llamada en tiempo de ejecución de Microsoft Direct3D que el controlador de pantalla en modo de usuario puede usar.

Sintaxis

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;

Miembros

pfnAllocateCb

Puntero a la función pfnAllocateCb , que el controlador de pantalla en modo de usuario usa para solicitar que el tiempo de ejecución de Direct3D cree una asignación de memoria para que la use el controlador.

pfnDeallocateCb

Puntero a la función pfnDeallocateCb , que el controlador de visualización en modo de usuario usa para solicitar que el tiempo de ejecución de Direct3D libere memoria asignada anteriormente.

pfnSetPriorityCb

Puntero a la función pfnSetPriorityCb , que el controlador de visualización en modo de usuario usa para establecer la prioridad de un recurso o una lista de asignaciones.

pfnQueryResidencyCb

Puntero a la función pfnQueryResidencyCb , que el controlador de visualización en modo de usuario usa para consultar el estado de residencia de un recurso o una lista de asignaciones.

pfnSetDisplayModeCb

Puntero a la función pfnSetDisplayModeCb , que el controlador de pantalla en modo de usuario usa para establecer una asignación para mostrar.

pfnPresentCb

Puntero a la función pfnPresentCb , que el controlador de pantalla en modo de usuario usa para enviar un comando presente al controlador de minipuerto de pantalla.

pfnRenderCb

Puntero a la función pfnRenderCb , que el controlador de pantalla en modo de usuario usa para enviar un búfer de comandos al controlador de miniporte de pantalla.

pfnLockCb

Puntero a la función pfnLockCb , que el controlador de pantalla en modo de usuario usa para solicitar un bloqueo del controlador de miniporte de pantalla. El controlador de pantalla en modo de usuario no puede controlar este bloqueo por completo.

pfnUnlockCb

Puntero a la función pfnUnlockCb , que el controlador de pantalla en modo de usuario usa para llamar al controlador de miniporte de pantalla para un desbloqueo. Este desbloqueo no se puede controlar completamente mediante el controlador de pantalla en modo de usuario.

pfnEscapeCb

Puntero a la función pfnEscapeCb , que el controlador de pantalla en modo de usuario usa para compartir información con el controlador de minipuerto de pantalla.

pfnCreateOverlayCb

Puntero a la función pfnCreateOverlayCb , que el controlador de visualización en modo de usuario usa para crear y mostrar un objeto de superposición en modo kernel.

pfnUpdateOverlayCb

Puntero a la función pfnUpdateOverlayCb , que el controlador de pantalla en modo de usuario usa para modificar un objeto de superposición en modo kernel.

pfnFlipOverlayCb

Puntero a la función pfnFlipOverlayCb , que el controlador de pantalla en modo de usuario usa para cambiar la asignación que muestra la superposición.

pfnDestroyOverlayCb

Puntero a la función pfnDestroyOverlayCb , que el controlador de pantalla en modo de usuario usa para destruir un objeto de superposición en modo kernel y evitar que se muestre la superposición.

pfnCreateContextCb

Puntero a la función pfnCreateContextCb , que el controlador de visualización en modo de usuario usa para crear un contexto al que enviar solicitudes.

pfnDestroyContextCb

Puntero a la función pfnDestroyContextCb , que el controlador de pantalla en modo de usuario usa para destruir un contexto que pfnCreateContextCb creó.

pfnCreateSynchronizationObjectCb

Puntero a la función pfnCreateSynchronizationObjectCb , que el controlador de visualización en modo de usuario usa para crear un objeto de sincronización.

pfnDestroySynchronizationObjectCb

Puntero a la función pfnDestroySynchronizationObjectCb , que el controlador de pantalla en modo de usuario usa para destruir un objeto de sincronización que pfnCreateSynchronizationObjectCb creó.

pfnWaitForSynchronizationObjectCb

Puntero a la función pfnWaitForSynchronizationObjectCb , que el controlador de pantalla en modo de usuario usa para esperar a que se produzcan eventos de sincronización y, a continuación, se usa para devolver.

pfnSignalSynchronizationObjectCb

Puntero a la función pfnSignalSynchronizationObjectCb , que el controlador de pantalla en modo de usuario usa para indicar que los eventos de sincronización ya no son propiedad de un contexto.

pfnSetAsyncCallbacksCb

Puntero a la función pfnSetAsyncCallbacksCb que el controlador de pantalla en modo de usuario usa para notificar al tiempo de ejecución de Direct3D si el tiempo de ejecución se iniciará o dejará de recibir llamadas a las funciones de devolución de llamada del tiempo de ejecución desde un subproceso de trabajo.

Solo las versiones de DirectX 9 y Direct 9L del entorno de ejecución admiten la función pfnSetAsyncCallbacksCb . DirectX 10 y versiones posteriores del runtime establecen el miembro pfnSetAsyncCallbacksCb en NULL cuando el tiempo de ejecución llama a la función CreateDevice(D3D10) del controlador de visualización en modo de usuario para crear un dispositivo de representación.

pfnSetDisplayPrivateDriverFormatCb

Puntero a la función pfnSetDisplayPrivateDriverFormatCb que usa el controlador de pantalla en modo de usuario para cambiar el formato de la superficie principal compartida.

pfnOfferAllocationsCb

Puntero a la función pfnOfferAllocationsCb , que un controlador de pantalla del modo de usuario WDDM 1.2 y versiones posteriores llama al controlador de pantalla para ofrecer asignaciones de memoria de vídeo para su reutilización.

Se admite a partir de Windows 8.

pfnReclaimAllocationsCb

Puntero a la función pfnReclaimAllocationsCb , que un controlador de pantalla en modo de usuario WDDM 1.2 y versiones posteriores llama a para reclamar el acceso a las asignaciones de memoria de vídeo que se ofrecieron anteriormente para su reutilización.

Se admite a partir de Windows 8.

pfnCreateSynchronizationObject2Cb

Puntero a la función pfnCreateSynchronizationObject2Cb , que un controlador de pantalla en modo de usuario WDDM 1.2 y versiones posteriores usa para crear un objeto de sincronización de GPU.

Se admite a partir de Windows 8.

pfnWaitForSynchronizationObject2Cb

Puntero a la función pfnWaitForSynchronizationObject2Cb , que un controlador de pantalla en modo de usuario WDDM 1.2 y versiones posteriores usa para esperar a que se produzcan eventos de sincronización de GPU y, a continuación, se usa para devolver.

Se admite a partir de Windows 8.

pfnSignalSynchronizationObject2Cb

Puntero a la función pfnSignalSynchronizationObject2Cb , que un controlador de pantalla en modo de usuario WDDM 1.2 y versiones posteriores usa para indicar que los eventos de sincronización de GPU ya no son propiedad de un contexto.

Se admite a partir de Windows 8.

pfnPresentMultiPlaneOverlayCb

Puntero a la función pfnPresentMultiPlaneOverlayCb (D3D), que un controlador de pantalla en modo de usuario WDDM 1.3 y versiones posteriores usa para copiar contenido de una asignación de superposición multiplano de origen a una asignación de destino.

Se admite a partir de Windows 8.1.

pfnLogUMDMarkerCb

Puntero a la función pfnLogUMDMarkerCb , que un controlador de visualización en modo de usuario WDDM 1.3 y versiones posteriores llama a para registrar un evento de marcador de seguimiento de eventos personalizado para Windows (ETW).

Se admite a partir de Windows 8.1.

pfnMakeResidentCb

Puntero a la función pfnMakeResidentCb .

pfnEvictCb

Puntero a la función pfnEvictCb .

pfnWaitForSynchronizationObjectFromCpuCb

Puntero a la función pfnWaitForSynchronizationObjectFromCpuCb .

pfnSignalSynchronizationObjectFromCpuCb

Puntero a la función pfnSignalSynchronizationObjectFromCpuCb .

pfnWaitForSynchronizationObjectFromGpuCb

Puntero a la función pfnWaitForSynchronizationObjectFromGpuCb .

pfnSignalSynchronizationObjectFromGpuCb

Puntero a la función pfnSignalSynchronizationObjectFromGpuCb .

pfnCreatePagingQueueCb

Puntero a la función pfnCreatePagingQueueCb .

pfnDestroyPagingQueueCb

Puntero a la función pfnDestroyPagingQueueCb .

pfnLock2Cb

Puntero a la función pfnLock2Cb .

pfnUnlock2Cb

Puntero a la función pfnUnlock2Cb .

pfnInvalidateCacheCb

Puntero a la función pfnInvalidateCacheCb .

pfnReserveGpuVirtualAddressCb

Puntero a la función pfnReserveGpuVirtualAddressCb .

pfnMapGpuVirtualAddressCb

Puntero a la función pfnMapGpuVirtualAddressCb .

pfnFreeGpuVirtualAddressCb

Puntero a la función pfnFreeGpuVirtualAddressCb .

pfnUpdateGpuVirtualAddressCb

Puntero a la función pfnUpdateGpuVirtualAddressCb .

pfnCreateContextVirtualCb

Puntero a la función pfnCreateContextVirtualCb .

pfnSubmitCommandCb

Puntero a la función pfnSubmitCommandCb .

pfnDeallocate2Cb

Puntero a la función pfnDeallocate2Cb .

pfnSignalSynchronizationObjectFromGpu2Cb

Puntero a la función pfnSignalSynchronizationObjectFromGpu2Cb .

pfnReclaimAllocations2Cb

Puntero a la función pfnReclaimAllocations2Cb .

pfnGetResourcePresentPrivateDriverDataCb

Puntero a la función pfnGetResourcePresentPrivateDriverDataCb .

pfnUpdateAllocationPropertyCb

Puntero a la función pfnUpdateAllocationPropertyCb .

pfnOfferAllocations2Cb

Puntero a la función pfnOfferAllocations2Cb .

pfnReclaimAllocations3Cb

Puntero a la función pfnReclaimAllocations3Cb .

pfnAcquireResourceCb

pfnReleaseResourceCb

pfnCreateHwContextCb

Puntero a una función de devolución de llamada PFND3DDDI_CREATEHWCONTEXTCB .

pfnDestroyHwContextCb

Puntero a una función de devolución de llamada PFND3DDDI_DESTROYHWCONTEXTCB .

pfnCreateHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_CREATEHWQUEUECB .

pfnDestroyHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_DESTROYHWQUEUECB .

pfnSubmitCommandToHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_SUBMITCOMMANDTOHWQUEUECB .

pfnSubmitWaitForSyncObjectsToHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_SUBMITWAITFORSYNCOBJECTSTOHWQUEUECB .

pfnSubmitSignalSyncObjectsToHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_SUBMITSIGNALSYNCOBJECTSTOHWQUEUECB .

pfnSubmitPresentBltToHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_SUBMITPRESENTBLTTOHWQUEUECB .

pfnSubmitPresentToHwQueueCb

Puntero a una función de devolución de llamada PFND3DDDI_SUBMITPRESENTTOHWQUEUECB .

pfnSubmitHistorySequenceCb

Puntero a una función de devolución de llamada PFND3DDDI_SUBMITHISTORYSEQUENCECB .

Comentarios

Las declaraciones de las funciones de devolución de llamada a las que D3DDDI_DEVICECALLBACKS miembros apuntan a se pueden encontrar en d3dumddi.h.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado d3dumddi.h (incluya D3dumddi.h)