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;
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8)
  PFND3DDDI_OFFERALLOCATIONSCB                    pfnOfferAllocationsCb;
  PFND3DDDI_RECLAIMALLOCATIONSCB                  pfnReclaimAllocationsCb;
  PFND3DDDI_CREATESYNCHRONIZATIONOBJECT2CB        pfnCreateSynchronizationObject2Cb;
  PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECT2CB       pfnWaitForSynchronizationObject2Cb;
  PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECT2CB        pfnSignalSynchronizationObject2Cb;
  PFND3DDDI_PRESENTMULTIPLANEOVERLAYCB            pfnPresentMultiPlaneOverlayCb;
#endif
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3)
  PFND3DDDI_LOGUMDMARKERCB                        pfnLogUMDMarkerCb;
#endif
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0)
  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;
#endif
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_1_1)
  PFND3DDDI_UPDATEALLOCATIONPROPERTYCB            pfnUpdateAllocationPropertyCb;
#endif
  PFND3DDDI_OFFERALLOCATIONS2CB                   pfnOfferAllocations2Cb;
  PFND3DDDI_RECLAIMALLOCATIONS3CB                 pfnReclaimAllocations3Cb;
} 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

pfnDestroyContextCb 함수에 대한 포인터로, 사용자 모드 표시 드라이버가 pfnCreateContextCb에서 만든 컨텍스트를 삭제하는 데 사용합니다.

pfnCreateSynchronizationObjectCb

사용자 모드 표시 드라이버가 동기화 개체를 만드는 데 사용하는 pfnCreateSynchronizationObjectCb 함수에 대한 포인터입니다.

pfnDestroySynchronizationObjectCb

pfnDestroySynchronizationObjectCb 함수에 대한 포인터로, 사용자 모드 표시 드라이버가 pfnCreateSynchronizationObjectCb에서 만든 동기화 개체를 삭제하는 데 사용합니다.

pfnWaitForSynchronizationObjectCb

pfnWaitForSynchronizationObjectCb 함수에 대한 포인터로, 사용자 모드 표시 드라이버가 동기화 이벤트가 발생할 때까지 기다린 다음 반환하는 데 사용합니다.

pfnSignalSynchronizationObjectCb

pfnSignalSynchronizationObjectCb 함수에 대한 포인터로, 사용자 모드 표시 드라이버가 동기화 이벤트가 더 이상 컨텍스트에서 소유되지 않음을 알리는 데 사용합니다.

pfnSetAsyncCallbacksCb

사용자 모드 표시 드라이버가 Direct3D 런타임에 런타임이 작업자 스레드에서 런타임의 콜백 함수에 대한 호출 수신을 시작하거나 중지할지 여부를 알리는 데 사용하는 pfnSetAsyncCallbacksCb 함수에 대한 포인터입니다.

런타임의 DirectX 9 및 Direct 9L 버전만 pfnSetAsyncCallbacksCb 함수를 지원합니다 . 런타임의 DirectX 10 이상 버전은 런타임이 사용자 모드 디스플레이 드라이버의 CreateDevice(D3D10) 함수를 호출하여 렌더링 디바이스를 만들 때 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

pfnSubmitHistorySequenceCb

설명

D3dumddi.h의 다음 코드는 D3DDDI_DEVICECALLBACKS 멤버가 가리키는 콜백 함수에 대한 함수 선언을 보여 줍니다.

typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_ALLOCATECB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_ALLOCATE*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_DEALLOCATECB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_DEALLOCATE*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_SETPRIORITYCB)(
        _In_ HANDLE hDevice, _In_ D3DDDICB_SETPRIORITY*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_QUERYRESIDENCYCB)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDICB_QUERYRESIDENCY*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_SETDISPLAYMODECB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_SETDISPLAYMODE*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_PRESENTCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_PRESENT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_RENDERCB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_RENDER*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_LOCKCB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_LOCK*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_UNLOCKCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_UNLOCK*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_ESCAPECB)(
        _In_ HANDLE hAdapter, _Inout_ CONST D3DDDICB_ESCAPE*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_CREATEOVERLAYCB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_CREATEOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_UPDATEOVERLAYCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_UPDATEOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_FLIPOVERLAYCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_FLIPOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_DESTROYOVERLAYCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_DESTROYOVERLAY*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_CREATECONTEXTCB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_CREATECONTEXT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_DESTROYCONTEXTCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_DESTROYCONTEXT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_CREATESYNCHRONIZATIONOBJECTCB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_CREATESYNCHRONIZATIONOBJECT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_DESTROYSYNCHRONIZATIONOBJECTCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_DESTROYSYNCHRONIZATIONOBJECT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_SETASYNCCALLBACKSCB)(
        _In_ HANDLE hDevice, _In_ BOOL Enable);
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WIN8)
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_CREATESYNCHRONIZATIONOBJECT2CB)(
        _In_ HANDLE hDevice, _Inout_ D3DDDICB_CREATESYNCHRONIZATIONOBJECT2*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECT2CB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT2*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECT2CB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT2*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_OFFERALLOCATIONSCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_OFFERALLOCATIONS*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_RECLAIMALLOCATIONSCB)(
        _In_ HANDLE hDevice, _Inout_ CONST D3DDDICB_RECLAIMALLOCATIONS*);
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_PRESENTMULTIPLANEOVERLAYCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_PRESENTMULTIPLANEOVERLAY*);
#endif
#if (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3)
typedef _Check_return_ HRESULT (APIENTRY CALLBACK *PFND3DDDI_LOGUMDMARKERCB)(
        _In_ HANDLE hDevice, _In_ CONST D3DDDICB_LOGUMDMARKER*);
#endif

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
헤더 d3dumddi.h(D3dumddi.h 포함)

참고 항목

pfnSignalSynchronizationObject2Cb

pfnUpdateOverlayCb

pfnDestroyContextCb

pfnWaitForSynchronizationObject2Cb

pfnDeallocateCb

CreateDevice(D3D10)

pfnUnlockCb

pfnQueryResidencyCb

pfnCreateContextCb

pfnWaitForSynchronizationObjectCb

pfnAllocateCb

pfnEscapeCb

pfnSetDisplayPrivateDriverFormatCb

pfnOfferAllocations2Cb

pfnSetPriorityCb

pfnReclaimAllocations3Cb

pfnPresentMultiPlaneOverlayCb(D3D)

pfnSetDisplayModeCb

pfnDestroyOverlayCb

pfnDestroySynchronizationObjectCb

pfnLockCb

pfnSetAsyncCallbacksCb

CreateDevice

pfnLogUMDMarkerCb

pfnSignalSynchronizationObjectCb

pfnRenderCb

pfnFlipOverlayCb

pfnCreateSynchronizationObject2Cb

pfnCreateSynchronizationObjectCb

pfnCreateOverlayCb

pfnPresentCb