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 は次の操作を行う必要があります。
- DxgkCbLogEtwEvent を通じてこの問題を報告し、GUID_DxgkAzureTriageEvent識別子と検証に失敗した内容に関する具体的な詳細を報告して、問題をトリアージして修正できるようにします。
- この DDI 呼び出しから、STATUS_OBJECT_TYPE_MISMATCH エラーを返します。
DxgkDdiRestoreImmutableMigrationData は、現在一時停止されている VM に対してのみ呼び出す必要があります。
詳細については、「 GPU-P デバイスでのライブ マイグレーション」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 11バージョン 24H2 (WDDM 3.2) |
Header | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |