DXGKDDI_RESUMEHWENGINE callback function (d3dkmddi.h)

Dxgkrnl calls DxgkDdiResumeHwEngine after a GPU engine has been successfully reset to instruct the GPU scheduler to resubmit contexts that weren't invalidated by the reset.

Syntax

DXGKDDI_RESUMEHWENGINE DxgkddiResumehwengine;

NTSTATUS DxgkddiResumehwengine(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_RESUMEHWENGINE pResumeHwEngine
)
{...}

Parameters

hAdapter

[in] A handle to the context block associated with a display adapter. KMD previously provided this handle to Dxgkrnl in the MiniportDeviceContext output parameter of the DxgkDdiAddDevice function.

pResumeHwEngine

[in/out] Pointer to a DXGKARG_RESUMEHWENGINE structure that contains information to resume the hardware engine.

Return value

DxgkDdiResumeHwEngine returns STATUS_SUCCESS if the operation succeeds. Otherwise, it should return an appropriate NTSTATUS error code. If the call fails, the OS will perform a full GPU reset.

Remarks

The engine isn't considered resumed yet after DxgkDdiResetHwEngine is called, so even contexts that weren't invalidated aren't allowed to be submitted. The OS needs to re-enable interrupts from this engine and synchronize its state with the reset GPU engine. After that, the OS will enable interrupts and call DxgkDdiResumeHwEngine, which instructs the GPU engine to start scheduling all runnable contexts that weren't affected by the engine reset.

Register your implementation of this callback function in the **DRIVER_INITIALIZATION_DATA ** structure.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1703 (WDDM 2.2)
Header d3dkmddi.h

See also

DXGKARG_RESUMEHWENGINE

DxgkDdiResetHwEngine