Direct3D Runtime Functions Called by User-Mode Display Drivers

This topic lists the functions that the Microsoft Direct3D runtime supplies to the user-mode display driver. These include the Direct3D runtime kernel-services accessing functions and the Direct3D runtime version 10 and 11 functions. Theses functions are part of the user-mode Direct3D display driver interfaces that the operating system implements through the Direct3D runtime.

Direct3D Runtime Kernel-Services Accessing Functions

The Microsoft Direct3D version 9 runtime supplies pointers to adapter-specific callback functions through members of the D3DDDI_ADAPTERCALLBACKS structure in a call to the user-mode display driver's OpenAdapter function. The runtime supplies pointers to display device-specific callback functions through members of the D3DDDI_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice function.

The Microsoft Direct3D version 10 or later runtime supplies pointers to adapter-specific callback functions through members of the D3DDDI_ADAPTERCALLBACKS structure in a call to the user-mode display driver's OpenAdapter10 or OpenAdapter10_2 function. The runtime supplies pointers to display device-specific callback functions through members of the D3DDDI_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D Parameter Structures

The following structures are used by the Direct3D runtime kernel-services accessing functions. The user-mode display driver passes pointers to these structures in parameters of the runtime functions.

  • D3DDDI_UPDATEALLOCPROPERTY
  • D3DDDICB_ALLOCATE
  • D3DDDICB_CREATECONTEXT
  • D3DDDICB_CREATECONTEXTVIRTUAL
  • D3DDDICB_CREATEHWCONTEXT
  • D3DDDICB_CREATEHWQUEUE
  • D3DDDICB_CREATEOVERLAY
  • D3DDDICB_CREATEPAGINGQUEUE
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT2
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT
  • D3DDDICB_DESTROYHWCONTEXT
  • D3DDDICB_DESTROYHWQUEUE
  • D3DDDICB_DEALLOCATE
  • D3DDDICB_DEALLOCATE2
  • D3DDDICB_DESTROYCONTEXT
  • D3DDDICB_DESTROYOVERLAY
  • D3DDDICB_DESTROYSYNCHRONIZATIONOBJECT
  • D3DDDICB_ESCAPE
  • D3DDDICB_EVICT
  • D3DDDICB_FLIPOVERLAY
  • D3DDDICB_GETMULTISAMPLEMETHODLIST
  • D3DDDICB_LOCK
  • D3DDDICB_LOCK2FLAGS
  • D3DDDICB_OFFERALLOCATIONS
  • D3DDDICB_PRESENT
  • D3DDDICB_QUERYADAPTERINFO
  • D3DDDICB_QUERYRESIDENCY
  • D3DDDICB_RECLAIMALLOCATIONS
  • D3DDDICB_RECLAIMALLOCATIONS2
  • D3DDDICB_RENDER
  • D3DDDICB_SETDISPLAYMODE
  • D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT
  • D3DDDICB_SETPRIORITY
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT2
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2
  • D3DDDICB_SUBMITCOMMAND
  • D3DDDICB_SUBMITCOMMANDFLAGS
  • D3DDDICB_SUBMITCOMMANDTOHWQUEUE
  • D3DDDICB_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_UNLOCK
  • D3DDDICB_UNLOCK2
  • D3DDDICB_UPDATEGPUVIRTUALADDRESS
  • D3DDDICB_UPDATEOVERLAY
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT2
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMGPU

Direct3D Runtime Version 10 and Later Core Callback Functions

This section describes core callback functions that the Microsoft Direct3D 10 and later runtimes supply to the user-mode display driver. The runtime supplies pointers to core callback functions through members of the D3D10DDI_CORELAYER_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D Runtime Version 10 Control Callback Functions

The following is a list of control callback functions that the Microsoft Direct3D 10 and later runtimes supply to the user-mode display driver through the D3D10DDI_CORELAYER_DEVICECALLBACKS structure.

Direct3D Runtime Version 10 State-Refresh Callback Functions

The following is a list of the state-refresh callback functions that the Microsoft Direct3D 10 runtime supplies to the user-mode display driver through the D3D10DDI_CORELAYER_DEVICECALLBACKS structure.

Because the Direct3D 10 runtime caches the currently bound state objects for applications, the runtime also caches currently bound state objects for user-mode display drivers with low overhead. For each call that the user-mode display driver makes to a state-refresh callback function, the Direct3D 10 runtime makes a corresponding call to a driver state function in the same execution thread before returning to the calling code in the driver. To improve performance, the state-refresh callback functions do not perform any parameter validation.

The state-refresh callback functions are useful when you are trying to develop a stateless driver or building up command buffer preamble data. The state-refresh callback functions also allow the user-mode display driver to benefit from high watermarks that the Direct3D 10 runtime maintains. High watermarks indicate the largest slot index, which could be non-NULL; therefore, high watermarks improve traversals across such slots.

Direct3D Runtime Version 10 Kernel-Services Accessing Functions

This section lists the kernel-services accessing functions that the DirectX Graphics Infrastructure (DXGI) component of the Microsoft Direct3D 10 runtime supplies to the user-mode display driver. DXGI supplies pointers to kernel-services accessing functions through members of the DXGI_DDI_BASE_CALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D Runtime Version 11 Functions

This section describes core callback functions that the Microsoft Direct3D 11 and later runtimes supply to the user-mode display driver. The runtime supplies pointers to core callback functions through members of the D3D11DDI_CORELAYER_DEVICECALLBACKS structure in a call to the user-mode display driver's CreateDevice(D3D10) function.

Direct3D Runtime Version 11 Control Callback Functions

This section lists the additional control callback functions that the Microsoft Direct3D 11 and later runtimes supply to the user-mode display driver.

Direct3D Runtime Version 11 State-Refresh Callback Functions

This section lists the additional state-refresh callback functions that the Microsoft Direct3D version 11 and later runtimes supply to the user-mode display driver.

Because the Direct3D 11 runtime caches the currently bound state objects for applications, the runtime also caches currently bound state objects for user-mode display drivers with low overhead. For each call that the user-mode display driver makes to a state-refresh callback function, the Direct3D 11 runtime makes a corresponding call to a driver state function in the same execution thread before returning to the calling code in the driver. To improve performance, the state-refresh callback functions do not perform any parameter validation.

The state-refresh callback functions are useful when you try to develop a stateless driver or build up command buffer preamble data. The state-refresh callback functions also allow the user-mode display driver to benefit from high watermarks that the Direct3D 11 runtime maintains. High watermarks indicate the largest slot index, which could be non-NULL; therefore, high watermarks improve traversals across such slots.

Direct3D Runtime Version 12 and Later Functions

The Microsoft Direct3D 12 and later runtimes supply the following core callback functions to the user-mode display driver.

See also

Supporting the DXGI DDI

Multiplane overlay support

Direct3D Functions Implemented by User Mode Display Drivers

Direct3D rendering performance improvements