D3DKMTSubmitCommand function

D3DKMTSubmitCommand is used to submit command buffers on contexts that support graphics processing unit (GPU) virtual addressing. These contexts generate commands directly from user mode, manage their own command buffer pool and don’t make use of the allocation or patch location list.

This function replaces the old Render function for such contexts and must be used in its place. Contexts that operate in legacy patch mode must continue to use the old Render function.

Although the user mode driver doesn’t generate patch locations, it must still generate a list of primaries, which are being written to. The video memory manager uses the allocation list to determine which primary allocations are being referenced for write by each command buffer. This information is used to synchronize rendering to the primaries with flip operations.

Some kernel mode drivers need information from their user mode driver on how to submit a particular direct memory access (DMA) buffer to their GPU. In Windows Display Driver Model (WDDM) 1.0, this information was sent by the user mode driver to the kernel mode driver through the command buffer. Since DMA buffer are built directly by the user mode driver and submitted to the GPU without modification they can’t be used to send information to the kernel driver anymore. To enable the transfer of information between the user mode and kernel mode drivers, an explicit private driver data buffer has been added to be sent along with a submission.


This private driver data is unidirectional and the kernel mode driver can’t return information to the user mode driver through this buffer.





Return Value

|Return code|Description| |--- |--- | |STATUS_SUCCESS|The device context was successfully created.| |STATUS_INVALID_PARAMETER|Parameters were validated and determined to be incorrect.|   This function might also return other NTSTATUS values.


Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Target Platform Universal
Header d3dkmthk.h (include D3dkmthk.h)
Library Gdi32.lib
DLL Gdi32.dll

See Also