次の方法で共有


DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA コールバック関数 (d3dkmddi.h)

受信側 OS は DxgkDdiRestoreImmutableMigrationData を呼び出して、 DxgkDdiSaveImmutableMigrationData の以前の呼び出しで送信側ドライバーによって保存された変更できないデータを復元します。

構文

DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA DxgkddiRestoreimmutablemigrationdata;

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

パラメーター

hAdapter

[入力]ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーは、DXGKDDI_ADD_DEVICE関数のMiniportDeviceContext 出力パラメーターで Dxgkrnl にこのハンドルを以前に提供しました。

pArgs

[入力]変更できないデータを復元するために必要な情報を含む DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA 構造体へのポインター。

戻り値

DxgkDdiRestoreImmutableMigrationData は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、STATUS_OBJECT_TYPE_MISMATCHエラー コードなどの適切な NTSTATUS コードが返されます (「解説」を参照)。

注釈

2 回呼び出される保存/送信側とは異なり、 DxgkDdiRestoreImmutableMigrationData は、受信側 KMD に完全なデータ バッファーを提示するために必要なすべてのデータがあるため、1 回だけ呼び出されます。 ドライバーは、データを取得し、構築中の VF に適用し、その追跡を行い、復元を成功させるために必要なデータ不変性を検証する必要があります。

バッファーは 、DxgkDdiSaveImmutableMigrationData のソース側で入力されたコンテンツであるため、KMD は共通の型でそのデータを追跡する必要があります。 また、新しいドライバーでデータを変更する必要がある可能性がある場合は、コンテンツ データにバージョン管理スキームを実装する必要があります。このスキームは、ターゲットで行われるバージョン チェックの一部である必要があります。

ソースから VF を移行するようにターゲット システムが正しく構成されていないことがデータに示されている場合、KMD は次の操作を行う必要があります。

  1. DxgkCbLogEtwEvent を通じてこの問題を報告し、GUID_DxgkAzureTriageEvent識別子と検証に失敗した内容に関する具体的な詳細を報告して、問題をトリアージして修正できるようにします。
  2. この DDI 呼び出しから、STATUS_OBJECT_TYPE_MISMATCH エラーを返します。

DxgkDdiRestoreImmutableMigrationData は、現在一時停止されている VM に対してのみ呼び出す必要があります。

詳細については、「 GPU-P デバイスでのライブ マイグレーション」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 11バージョン 24H2 (WDDM 3.2)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData