// d3dkmthk.h
NTSTATUS D3DKMTOutputDuplPresent(
[in] const D3DKMT_OUTPUTDUPLPRESENT *unnamedParam1
);
View the official Windows Driver Kit DDI referenceNo description available.
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).
unnamedParam1 [in]A pointer to a D3DKMT_OUTPUTDUPLPRESENT structure that describes parameters for the present operation.
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. |