structure D3DDDI_DEVICECALLBACKS (d3dumddi.h)

La structure D3DDDI_DEVICECALLBACKS contient des fonctions de rappel du runtime Microsoft Direct3D que le pilote d’affichage en mode utilisateur peut utiliser.

Syntaxe

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;

Membres

pfnAllocateCb

Pointeur vers la fonction pfnAllocateCb , que le pilote d’affichage en mode utilisateur utilise pour demander au runtime Direct3D de créer une allocation de mémoire à utiliser par le pilote.

pfnDeallocateCb

Pointeur vers la fonction pfnDeallocateCb , que le pilote d’affichage en mode utilisateur utilise pour demander que le runtime Direct3D libère la mémoire précédemment allouée.

pfnSetPriorityCb

Pointeur vers la fonction pfnSetPriorityCb , que le pilote d’affichage en mode utilisateur utilise pour définir la priorité d’une ressource ou d’une liste d’allocations.

pfnQueryResidencyCb

Pointeur vers la fonction pfnQueryResidencyCb, que le pilote d’affichage en mode utilisateur utilise pour interroger la status de résidence d’une ressource ou d’une liste d’allocations.

pfnSetDisplayModeCb

Pointeur vers la fonction pfnSetDisplayModeCb , que le pilote d’affichage en mode utilisateur utilise pour définir une allocation pour l’affichage.

pfnPresentCb

Pointeur vers la fonction pfnPresentCb , que le pilote d’affichage en mode utilisateur utilise pour envoyer une commande présente au pilote de miniport d’affichage.

pfnRenderCb

Pointeur vers la fonction pfnRenderCb , que le pilote d’affichage en mode utilisateur utilise pour envoyer une mémoire tampon de commande au pilote miniport d’affichage.

pfnLockCb

Pointeur vers la fonction pfnLockCb , que le pilote d’affichage en mode utilisateur utilise pour demander un verrou au pilote miniport d’affichage. Ce verrou ne peut pas être entièrement géré par le pilote d’affichage en mode utilisateur.

pfnUnlockCb

Pointeur vers la fonction pfnUnlockCb , que le pilote d’affichage en mode utilisateur utilise pour appeler le pilote miniport d’affichage pour un déverrouillage. Ce déverrouillage ne peut pas être entièrement géré par le pilote d’affichage en mode utilisateur.

pfnEscapeCb

Pointeur vers la fonction pfnEscapeCb , que le pilote d’affichage en mode utilisateur utilise pour partager des informations avec le pilote miniport d’affichage.

pfnCreateOverlayCb

Pointeur vers la fonction pfnCreateOverlayCb , que le pilote d’affichage en mode utilisateur utilise pour créer et afficher un objet de superposition en mode noyau.

pfnUpdateOverlayCb

Pointeur vers la fonction pfnUpdateOverlayCb , que le pilote d’affichage en mode utilisateur utilise pour modifier un objet de superposition en mode noyau.

pfnFlipOverlayCb

Pointeur vers la fonction pfnFlipOverlayCb , que le pilote d’affichage en mode utilisateur utilise pour modifier l’allocation affichée par la superposition.

pfnDestroyOverlayCb

Pointeur vers la fonction pfnDestroyOverlayCb , que le pilote d’affichage en mode utilisateur utilise pour détruire un objet de superposition en mode noyau et empêcher l’affichage de la superposition.

pfnCreateContextCb

Pointeur vers la fonction pfnCreateContextCb , que le pilote d’affichage en mode utilisateur utilise pour créer un contexte pour envoyer des demandes.

pfnDestroyContextCb

Pointeur vers la fonction pfnDestroyContextCb , que le pilote d’affichage en mode utilisateur utilise pour détruire un contexte créé par pfnCreateContextCb .

pfnCreateSynchronizationObjectCb

Pointeur vers la fonction pfnCreateSynchronizationObjectCb , que le pilote d’affichage en mode utilisateur utilise pour créer un objet de synchronisation.

pfnDestroySynchronizationObjectCb

Pointeur vers la fonction pfnDestroySynchronizationObjectCb , que le pilote d’affichage en mode utilisateur utilise pour détruire un objet de synchronisation créé par pfnCreateSynchronizationObjectCb .

pfnWaitForSynchronizationObjectCb

Pointeur vers la fonction pfnWaitForSynchronizationObjectCb , que le pilote d’affichage en mode utilisateur utilise pour attendre que les événements de synchronisation se produisent, puis utilise pour retourner.

pfnSignalSynchronizationObjectCb

Pointeur vers la fonction pfnSignalSynchronizationObjectCb , que le pilote d’affichage en mode utilisateur utilise pour signaler que les événements de synchronisation ne sont plus détenus par un contexte.

pfnSetAsyncCallbacksCb

Pointeur vers la fonction pfnSetAsyncCallbacksCb que le pilote d’affichage en mode utilisateur utilise pour informer le runtime Direct3D si le runtime démarre ou cesse de recevoir des appels aux fonctions de rappel du runtime à partir d’un thread worker.

Seules les versions DirectX 9 et Direct 9L du runtime prennent en charge la fonction pfnSetAsyncCallbacksCb . DirectX 10 et versions ultérieures du runtime définissent le membre pfnSetAsyncCallbacksCb sur NULL lorsque le runtime appelle la fonction CreateDevice(D3D10) du pilote d’affichage en mode utilisateur pour créer un périphérique de rendu.

pfnSetDisplayPrivateDriverFormatCb

Pointeur vers la fonction pfnSetDisplayPrivateDriverFormatCb que le pilote d’affichage en mode utilisateur utilise pour modifier le format de la surface primaire partagée.

pfnOfferAllocationsCb

Pointeur vers la fonction pfnOfferAllocationsCb , qu’un pilote d’affichage WDDM 1.2 et versions ultérieures appelle pour offrir des allocations de mémoire vidéo à réutiliser.

Pris en charge à partir de Windows 8.

pfnReclaimAllocationsCb

Pointeur vers la fonction pfnReclaimAllocationsCb , qu’un pilote d’affichage WDDM 1.2 et versions ultérieures appelle pour récupérer l’accès aux allocations de mémoire vidéo précédemment proposées pour la réutilisation.

Pris en charge à partir de Windows 8.

pfnCreateSynchronizationObject2Cb

Pointeur vers la fonction pfnCreateSynchronizationObject2Cb , qu’un pilote d’affichage WDDM 1.2 et versions ultérieures utilise pour créer un objet de synchronisation GPU.

Pris en charge à partir de Windows 8.

pfnWaitForSynchronizationObject2Cb

Pointeur vers la fonction pfnWaitForSynchronizationObject2Cb , qu’un pilote d’affichage WDDM 1.2 et versions ultérieures utilise pour attendre que des événements de synchronisation GPU se produisent, puis utilise pour retourner.

Pris en charge à partir de Windows 8.

pfnSignalSynchronizationObject2Cb

Pointeur vers la fonction pfnSignalSynchronizationObject2Cb , qu’un pilote d’affichage WDDM 1.2 et versions ultérieures utilise pour signaler que les événements de synchronisation GPU ne sont plus détenus par un contexte.

Pris en charge à partir de Windows 8.

pfnPresentMultiPlaneOverlayCb

Pointeur vers la fonction pfnPresentMultiPlaneOverlayCb (D3D), qu’un pilote d’affichage WDDM 1.3 et versions ultérieures utilise pour copier le contenu d’une allocation de superposition multiplan source vers une allocation de destination.

Pris en charge à partir de Windows 8.1.

pfnLogUMDMarkerCb

Pointeur vers la fonction pfnLogUMDMarkerCb , qu’un pilote d’affichage WDDM 1.3 et versions ultérieures appelle pour journaliser un événement de marqueur de suivi d’événements personnalisé pour Windows (ETW).

Pris en charge à partir de Windows 8.1.

pfnMakeResidentCb

Pointeur vers la fonction pfnMakeResidentCb .

pfnEvictCb

Pointeur vers la fonction pfnEvictCb .

pfnWaitForSynchronizationObjectFromCpuCb

Pointeur vers la fonction pfnWaitForSynchronizationObjectFromCpuCb .

pfnSignalSynchronizationObjectFromCpuCb

Pointeur vers la fonction pfnSignalSynchronizationObjectFromCpuCb .

pfnWaitForSynchronizationObjectFromGpuCb

Pointeur vers la fonction pfnWaitForSynchronizationObjectFromGpuCb .

pfnSignalSynchronizationObjectFromGpuCb

Pointeur vers la fonction pfnSignalSynchronizationObjectFromGpuCb .

pfnCreatePagingQueueCb

Pointeur vers la fonction pfnCreatePagingQueueCb .

pfnDestroyPagingQueueCb

Pointeur vers la fonction pfnDestroyPagingQueueCb .

pfnLock2Cb

Pointeur vers la fonction pfnLock2Cb .

pfnUnlock2Cb

Pointeur vers la fonction pfnUnlock2Cb .

pfnInvalidateCacheCb

Pointeur vers la fonction pfnInvalidateCacheCb .

pfnReserveGpuVirtualAddressCb

Pointeur vers la fonction pfnReserveGpuVirtualAddressCb .

pfnMapGpuVirtualAddressCb

Pointeur vers la fonction pfnMapGpuVirtualAddressCb .

pfnFreeGpuVirtualAddressCb

Pointeur vers la fonction pfnFreeGpuVirtualAddressCb .

pfnUpdateGpuVirtualAddressCb

Pointeur vers la fonction pfnUpdateGpuVirtualAddressCb .

pfnCreateContextVirtualCb

Pointeur vers la fonction pfnCreateContextVirtualCb .

pfnSubmitCommandCb

Pointeur vers la fonction pfnSubmitCommandCb .

pfnDeallocate2Cb

Pointeur vers la fonction pfnDeallocate2Cb .

pfnSignalSynchronizationObjectFromGpu2Cb

Pointeur vers la fonction pfnSignalSynchronizationObjectFromGpu2Cb .

pfnReclaimAllocations2Cb

Pointeur vers la fonction pfnReclaimAllocations2Cb .

pfnGetResourcePresentPrivateDriverDataCb

Pointeur vers la fonction pfnGetResourcePresentPrivateDriverDataCb .

pfnUpdateAllocationPropertyCb

Pointeur vers la fonction pfnUpdateAllocationPropertyCb .

pfnOfferAllocations2Cb

Pointeur vers la fonction pfnOfferAllocations2Cb .

pfnReclaimAllocations3Cb

Pointeur vers la fonction pfnReclaimAllocations3Cb .

pfnAcquireResourceCb

pfnReleaseResourceCb

pfnCreateHwContextCb

Pointeur vers une fonction de rappel PFND3DDDI_CREATEHWCONTEXTCB .

pfnDestroyHwContextCb

Pointeur vers une fonction de rappel PFND3DDDI_DESTROYHWCONTEXTCB .

pfnCreateHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_CREATEHWQUEUECB .

pfnDestroyHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_DESTROYHWQUEUECB .

pfnSubmitCommandToHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_SUBMITCOMMANDTOHWQUEUECB .

pfnSubmitWaitForSyncObjectsToHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_SUBMITWAITFORSYNCOBJECTSTOHWQUEUECB .

pfnSubmitSignalSyncObjectsToHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_SUBMITSIGNALSYNCOBJECTSTOHWQUEUECB .

pfnSubmitPresentBltToHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_SUBMITPRESENTBLTTOHWQUEUECB .

pfnSubmitPresentToHwQueueCb

Pointeur vers une fonction de rappel PFND3DDDI_SUBMITPRESENTTOHWQUEUECB .

pfnSubmitHistorySequenceCb

Pointeur vers une fonction de rappel PFND3DDDI_SUBMITHISTORYSEQUENCECB .

Remarques

Les déclarations pour les fonctions de rappel vers laquelle pointent D3DDDI_DEVICECALLBACKS membres se trouvent dans d3dumddi.h.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3dumddi.h (inclure D3dumddi.h)