DXGKDDI_PRESENTDISPLAYONLY callback function (d3dkmddi.h)

Presents the screen image to the display device of a kernel mode display-only driver (KMDOD).

Syntax

DXGKDDI_PRESENTDISPLAYONLY DxgkddiPresentdisplayonly;

NTSTATUS DxgkddiPresentdisplayonly(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_PRESENT_DISPLAYONLY pPresentDisplayOnly
)
{...}

Parameters

hAdapter

A handle to the device context for the display adapter. The KMDOD's DxgkDdiAddDevice function previously returned this handle in the MiniportDeviceContext parameter.

pPresentDisplayOnly

A pointer to a DXGKARG_PRESENT_DISPLAYONLY structure that contains information about the present operation.

Return value

Returns one of the following values:

Return code Description
STATUS_SUCCESS The present operation completed successfully.
STATUS_PENDING The present operation has been sent to the software or hardware queue to complete.
In this case, the KMDOD should use an interrupt and deferred procedure call (DPC) to report progress of the current present operation. Otherwise the operating system uses the Timeout Detection and Recovery (TDR) process, which reports an error and requires the KMDOD to reinitialize itself and to reset the GPU.
Note that this status code should not be returned for synchronous mode, as described in Remarks.

 

The driver can also return any other error status code defined in Ntstatus.h to indicate issues that have occurred with the present operation.

Remarks

The KMDOD must complete all screen-to-screen moves before copying dirty rectangles. In addition, the KMDOD must complete each move/copy operation before beginning another move/copy operation.

The operating system supports two modes of KMDOD present operations: synchronous and asynchronous. Depending on hardware and driver implementation, the KMDOD can use either mode or switch between them at any time.

The operating system guarantees that this function follows the zero level synchronization mode as defined in Threading and Synchronization Zero Level.

Requirements

Requirement Value
Minimum supported client Windows 8
Minimum supported server Windows Server 2012
Target Platform Desktop
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

See also

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT_DISPLAYONLY

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkCbPresentDisplayOnlyProgress

DxgkCbQueueDpc

DxgkDdiAddDevice