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


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

Ос на принимающей стороне вызывает DxgkDdiRestoreImmutableMigrationData для восстановления неизменяемых данных, сохраненных драйвером на стороне отправки в предыдущем вызове DxgkDdiSaveImmutableMigrationData.

Синтаксис

DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA DxgkddiRestoreimmutablemigrationdata;

NTSTATUS DxgkddiRestoreimmutablemigrationdata(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA pArgs
)
{...}

Параметры

hAdapter

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

pArgs

[in] Указатель на DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA структуру, содержащую сведения, необходимые для восстановления неизменяемых данных.

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

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

Комментарии

В отличие от стороны сохранения и отправки, которая вызывается дважды, DxgkDdiRestoreImmutableMigrationData вызывается только один раз, так как она содержит все данные, необходимые для представления полного буфера данных принимающей стороне KMD. Драйвер должен взять данные и применить их к создаваемой виртуальной машине, а также любому отслеживанию для него, а также проверить инварианты данных, необходимые для успешного восстановления.

Буфер — это содержимое, которое было заполнено на стороне источника в DxgkDdiSaveImmutableMigrationData, поэтому KMD должен отслеживать эти данные в общем типе. В данных содержимого также должна быть реализована схема управления версиями, если данные могут потребовать изменения с помощью новых драйверов, и эта схема должна быть частью проверки версии, выполняемой в целевом объекте.

Если данные указывают на то, что целевая система неправильно настроена для переноса VF из источника, KMD должен выполнить следующие действия:

  1. Сообщите об этой проблеме через dxgkCbLogEtwEvent с идентификатором GUID_DxgkAzureTriageEvent и конкретными сведениями о том, что не удалось проверить, чтобы проблему можно было рассмотреть и исправить.
  2. Возврат из этого вызова DDI с ошибкой STATUS_OBJECT_TYPE_MISMATCH.

DxgkDdiRestoreImmutableMigrationData следует вызывать только для виртуальных машин, которые в настоящее время приостановлены.

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

Требования

Требование Значение
Минимальная версия клиента Windows 11 версии 24H2 (WDDM 3.2)
Верхняя часть d3dkmddi.h
IRQL PASSIVE_LEVEL

См. также раздел

DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData