D3DKMTOutputDuplPresent function

Submits a present command from the Desktop Duplication API swapchain of the Desktop Window Manager (DWM) to the Microsoft DirectX graphics kernel subsystem (Dxgkrnl.sys).


NTSTATUS D3DKMTOutputDuplPresent(



Return Value

Returns one of the following values:

Return code Description
STATUS_SUCCESS The present operation was successfully performed.
STATUS_DEVICE_REMOVED The graphics adapter was stopped or the display context was reset.
STATUS_INVALID_PARAMETER Parameters were validated and determined to be incorrect.
STATUS_NO_MEMORY D3DKMTOutputDuplPresent could not complete because of insufficient memory.
STATUS_GRAPHICS_ALLOCATION_INVALID The primary surface handle was invalidated because of a display mode change. If the OpenGL installable client driver (ICD) receives this error code, it should reopen or re-create the primary handle, replace all references in the command buffer to the old handle with the new handle, and then resubmit the buffer.
STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE An error occurred on the rendering device context that the hContext member of D3DKMT_OUTPUTDUPLPRESENT specifies.
Note: This error code does not indicate the initiation of a Timeout Detection and Recovery (TDR) process or that the GPU stopped responding.
For example, the DirectX graphics kernel subsystem puts a device into an error state if the display miniport driver indicated that a DMA buffer that was submitted from this device caused a fault or if the video memory manager could not page-in all of the allocations that are required for a DMA buffer even after splitting the DMA buffer. After a device is in an error state, it cannot perform any more operations and must be destroyed and re-created. The ICD can call the D3DKMTGetDeviceState function to determine a more precise reason for the error.


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

See Also