DXGKDDI_SAVEMUTABLEMIGRATIONDATA callback function (d3dkmddi.h)

KMD's DxgkDdiSaveMutableMigrationData function collects mutable data for a live migration that is about to end.

Syntax

DXGKDDI_SAVEMUTABLEMIGRATIONDATA DxgkddiSavemutablemigrationdata;

NTSTATUS DxgkddiSavemutablemigrationdata(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_GPUP_SAVE_MUTABLE_MIGRATION_DATA pArgs
)
{...}

Parameters

hAdapter

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

pArgs

[in/out] Pointer to a DXGKARG_GPUP_SAVE_MUTABLE_MIGRATION_DATA structure for information related to the call.

Return value

DxgkDdiSaveMutableMigrationData returns STATUS_SUCCESS if the call is successful. Otherwise, it returns an appropriate NTSTATUS code.

Remarks

DxgkDdiSaveMutableMigrationData is called to collect mutable data when a live migration is about to end. This DDI should only ever be called for VFs that are currently paused.

DxgkDdiSaveMutableMigrationData is called in the classic dynamic buffer pattern:

  • On the first call, DataSize is set to 0 and Data to NULL. KMD should change DataSize to the total number of bytes it needs to store the immutable data.
  • Dxgkrnl creates a buffer of DataSize bytes and makes a second call with DataSize set to the value returned by KMD and Data pointing to the allocated buffer. Dxgkrnl controls the lifetime of this allocated memory after the call.

DxgkDdiSaveImmutableMigrationData is called at the start of a live migration to collect immutable data.

For more information, see Live migration on GPU-P devices.

Requirements

Requirement Value
Minimum supported client Windows 11, version 24H2 (WDDM 3.2)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

See also

DXGKARG_GPUP_SAVE_MUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData