Поделиться через


функция обратного вызова DXGKDDI_SAVEIMMUTABLEMIGRATIONDATA (d3dkmddi.h)

Функция KMD DxgkDdiSaveImmutableMigrationData сохраняет неизменяемые данные для динамической миграции, которая начинается.

Синтаксис

DXGKDDI_SAVEIMMUTABLEMIGRATIONDATA DxgkddiSaveimmutablemigrationdata;

NTSTATUS DxgkddiSaveimmutablemigrationdata(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_GPUP_SAVE_IMMUTABLE_MIGRATION_DATA pArgs
)
{...}

Параметры

hAdapter

[in] Дескриптор для блока контекста, связанного с адаптером отображения. Ранее этот дескриптор отображался для dxgkrnl в параметре вывода MiniportDeviceContext функции DXGKDDI_ADD_DEVICE.

pArgs

[in/out] Указатель на структуру DXGKARG_GPUP_SAVE_IMMUTABLE_MIGRATION_DATA для информации, связанной с вызовом.

Возвращаемое значение

DxgkDdiSaveImmutableMigrationData возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае возвращается соответствующий код NTSTATUS.

Замечания

После вызова функции KMD DxgkDdiPrepareLiveMigrationDxgkrnl затем вызываетDxgkDdiSaveImmutableMigrationData для сбора сведений об устройстве для восстановления на целевой стороне. Эта точка также позволяет системе проверять конфигурацию удаленного устройства, поэтому DxgkDdiSaveSaveImmutableMigrationData должен упаковать достаточно сведений, чтобы проверить все данные проверки оборудования, встроенного ПО или драйвера, которые могут обнаружить возможность перемещения VF на целевую конфигурацию.

Драйвер должен хранить данные о VF, который не изменится, пока он не изменится, что KMD целевого объекта может использовать для инициализации новой виртуальной машины. Эти данные не должны включать параметры создания VGPU, так как они будут переданы на более низких уровнях и используются для создания виртуального ЦП с помощью обычного DDI. Это может включать все данные, которые неизменяемо привязаны к VF, и не все необходимо восстановить на целевой стороне. Данные можно отправлять исключительно в целях проверки, что является важной частью этого интерфейса.

DxgkDdiSaveImmutableMigrationData вызывается в классическом динамическом буферном шаблоне:

  • При первом вызове DataSize имеет значение 0 и data значение NULL. KMD должен изменить DataSize на общее количество байтов, которые необходимо сохранить неизменяемые данные.
  • Dxgkrnl создает буфер DataSize байтов и вызывает второй вызов с DataSize значением, возвращаемым KMD и Data, указывающим на выделенный буфер. Dxgkrnl управляет временем существования выделенной памяти после вызова.

DxgkDdiSaveMutableMigrationData вызывается в конце динамической миграции для сбора изменяемых данных.

Дополнительные сведения см. в динамической миграции на устройствах GPU-P.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 11 версии 24H2 (WDDM 3.2)
заголовка d3dkmddi.h
IRQL PASSIVE_LEVEL

См. также

DXGKARG_GPUP_SAVE_IMMUTABLE_MIGRATION_DATA

DxgkDdiPrepareLiveMigration

DxgkDdiSaveMutableMigrationData