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
사용자 모드 표시 드라이버가 Direct3D 런타임에서 드라이버에서 사용할 메모리 할당을 만들도록 요청하는 데 사용하는 pfnAllocateCb 함수에 대한 포인터입니다.
pfnDeallocateCb
사용자 모드 표시 드라이버가 이전에 할당된 Direct3D 런타임 사용 가능한 메모리를 요청하는 데 사용하는 pfnDeallocateCb 함수에 대한 포인터입니다.
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
사용자 모드 표시 드라이버가 pfnCreateContextCb 에서 만든 컨텍스트를 삭제하는 데 사용하는 pfnDestroyContextCb 함수에 대한 포인터입니다.
pfnCreateSynchronizationObjectCb
사용자 모드 표시 드라이버가 동기화 개체를 만드는 데 사용하는 pfnCreateSynchronizationObjectCb 함수에 대한 포인터입니다.
pfnDestroySynchronizationObjectCb
사용자 모드 표시 드라이버가 pfnCreateSynchronizationObjectCb 에서 만든 동기화 개체를 삭제하는 데 사용하는 pfnDestroySynchronizationObjectCb 함수에 대한 포인터입니다.
pfnWaitForSynchronizationObjectCb
pfnWaitForSynchronizationObjectCb 함수에 대한 포인터로, 사용자 모드 표시 드라이버가 동기화 이벤트가 발생할 때까지 기다린 다음 를 사용하여 반환합니다.
pfnSignalSynchronizationObjectCb
pfnSignalSynchronizationObjectCb 함수에 대한 포인터로, 사용자 모드 표시 드라이버가 동기화 이벤트가 더 이상 컨텍스트에서 소유하지 않음을 알리는 데 사용합니다.
pfnSetAsyncCallbacksCb
사용자 모드 표시 드라이버가 Direct3D 런타임에 런타임이 작업자 스레드에서 런타임의 콜백 함수에 대한 호출 수신을 시작하거나 중지할지 여부를 알리는 데 사용하는 pfnSetAsyncCallbacksCb 함수에 대한 포인터입니다.
런타임의 DirectX 9 및 Direct 9L 버전만 pfnSetAsyncCallbacksCb 함수를 지원합니다 . 런타임이 사용자 모드 디스플레이 드라이버의 CreateDevice(D3D10) 함수를 호출하여 렌더링 디바이스를 만들 때 DirectX 10 이상 버전의 런타임은 pfnSetAsyncCallbacksCb 멤버를 NULL로 설정합니다.
pfnSetDisplayPrivateDriverFormatCb
사용자 모드 표시 드라이버가 공유 기본 화면의 형식을 변경하는 데 사용하는 pfnSetDisplayPrivateDriverFormatCb 함수에 대한 포인터입니다.
pfnOfferAllocationsCb
wDDM 1.2 이상 사용자 모드 디스플레이 드라이버가 다시 사용할 비디오 메모리 할당을 제공하기 위해 호출하는 pfnOfferAllocationsCb 함수에 대한 포인터입니다.
Windows 8 부터 지원합니다.
pfnReclaimAllocationsCb
wDDM 1.2 이상 사용자 모드 디스플레이 드라이버가 호출하여 이전에 재사용하도록 제공된 비디오 메모리 할당에 대한 액세스를 회수하는 pfnReclaimAllocationsCb 함수에 대한 포인터입니다.
Windows 8 부터 지원합니다.
pfnCreateSynchronizationObject2Cb
WDDM 1.2 이상 사용자 모드 표시 드라이버가 GPU 동기화 개체를 만드는 데 사용하는 pfnCreateSynchronizationObject2Cb 함수에 대한 포인터입니다.
Windows 8 부터 지원합니다.
pfnWaitForSynchronizationObject2Cb
WDDM 1.2 이상 사용자 모드 표시 드라이버가 GPU 동기화 이벤트가 발생할 때까지 기다린 다음 를 사용하여 반환하는 데 사용하는 pfnWaitForSynchronizationObject2Cb 함수에 대한 포인터입니다.
Windows 8 부터 지원합니다.
pfnSignalSynchronizationObject2Cb
WDDM 1.2 이상 사용자 모드 표시 드라이버가 GPU 동기화 이벤트가 더 이상 컨텍스트에서 소유하지 않음을 알리는 데 사용하는 pfnSignalSynchronizationObject2Cb 함수에 대한 포인터입니다.
Windows 8 부터 지원합니다.
pfnPresentMultiPlaneOverlayCb
WDDM 1.3 이상 사용자 모드 표시 드라이버가 원본 다중 평면 오버레이 할당에서 대상 할당으로 콘텐츠를 복사하는 데 사용하는 pfnPresentMultiPlaneOverlayCb(D3D) 함수에 대한 포인터입니다.
Windows 8.1 부터 지원합니다.
pfnLogUMDMarkerCb
wDDM 1.3 이상 사용자 모드 표시 드라이버가 호출하여 ETW(Windows용 사용자 지정 이벤트 추적) 마커 이벤트를 기록하는 pfnLogUMDMarkerCb 함수에 대한 포인터입니다.
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 콜백 함수에 대한 포인터입니다.
설명
D3DDDI_DEVICECALLBACKS 멤버가 가리키는 콜백 함수에 대한 선언은 d3dumddi.h에서 찾을 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
머리글 | d3dumddi.h(D3dumddi.h 포함) |