// d3dkmddi.h
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 DxgkddiSetvidpnsourceaddresswithmultiplaneoverlay3;
NTSTATUS DxgkddiSetvidpnsourceaddresswithmultiplaneoverlay3(
IN_CONST_HANDLE hAdapter,
IN_OUT_PDXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 pSetVidPnSourceAddressWithMultiPlaneOverlay
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 is called to change the overlay configuration being displayed.
hAdapterIdentifies the adapter containing the overlay hardware.
pSetVidPnSourceAddressWithMultiPlaneOverlayA pointer to a DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 structure that describes the surfaces and display options to present.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 returns the following values:
| Return code | Description |
|---|---|
| STATUS_SUCCESS | The routine completed successfully. |
| STATUS_INVALID_PARAMETER | In the [hardware flip queue model]/windows-hardware/drivers/display/hardware-flip-queue), the driver was unable to process a flip request. |
| STATUS_RETRY | Returned for reasons such as the driver failed to queue a request to the hardware due to pending flips or the driver needs to be called at the PASSIVE_LEVEL. If the driver needs to be called at PASSIVE_LEVEL it should also set the DXGK_SETVIDPNSOURCEADDRESS_OUTPUT_FLAGS.PrePresentNeeded flag. |
This function is typically called at interrupt level, but if the driver needs to perform hardware configuration that can only be performed at PASSIVE_LEVEL, the driver can request that this function be recalled at PASSIVE_LEVEL by returning STATUS_RETRY and setting the DXGK_SETVIDPNSOURCEADDRESS_OUTPUT_FLAGS.PrePresentNeeded flag.
Even when called at PASSIVE_LEVEL, the driver should avoid spending a significant amount of time in this call because the call blocks the main GPU scheduler thread and delay could lead to present glitches. Time intensive actions should be queued as separate work items by driver and handled in background. In this scenario, any conflicts between the queued item and hardware changes demanded by future pre/post calls should be managed by the driver.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3