Partager via


DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA fonction de rappel (d3dkmddi.h)

Le système d’exploitation côté réception appelle DxgkDdiRestoreImmutableMigrationData pour restaurer les données immuables enregistrées par le pilote côté envoi lors d’un appel précédent à DxgkDdiSaveImmutableMigrationData.

Syntaxe

DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA DxgkddiRestoreimmutablemigrationdata;

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

Paramètres

hAdapter

[in] Handle d’un bloc de contexte associé à une carte d’affichage. Le pilote miniport d’affichage a précédemment fourni cette poignée à Dxgkrnl dans le paramètre de sortie MiniportDeviceContext de la fonction DXGKDDI_ADD_DEVICE .

pArgs

[in] Pointeur vers une structure de DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA qui contient les informations nécessaires pour restaurer les données immuables.

Valeur retournée

DxgkDdiRestoreImmutableMigrationData retourne STATUS_SUCCESS si l’appel réussit. Sinon, il retourne un code NTSTATUS approprié tel que le code d’erreur STATUS_OBJECT_TYPE_MISMATCH (voir Remarques).

Remarques

Contrairement au côté enregistrement/envoi appelé deux fois, DxgkDdiRestoreImmutableMigrationData n’est appelé qu’une seule fois, car il contient toutes les données nécessaires pour présenter une mémoire tampon de données complète au KMD côté réception. Le pilote doit prendre les données et les appliquer à la VF en cours de construction, ainsi qu’à tout suivi pour celle-ci, et il doit valider les invariants de données nécessaires pour une restauration réussie.

La mémoire tampon étant le contenu qui a été rempli côté source dans DxgkDdiSaveImmutableMigrationData, KMD doit donc suivre ces données dans un type commun. Un schéma de contrôle de version doit également être implémenté dans les données de contenu si les données peuvent avoir besoin de changer avec de nouveaux pilotes, et ce schéma doit faire partie de la vérification de version effectuée sur la cible.

Si les données indiquent que le système cible n’est pas configuré correctement pour que la VF soit migrée à partir de la source, KMD doit effectuer les opérations suivantes :

  1. Signalez ce problème via DxgkCbLogEtwEvent avec l’identificateur GUID_DxgkAzureTriageEvent et des détails spécifiques sur l’échec de la validation afin que le problème puisse être trié et corrigé.
  2. Revenez à partir de cet appel DDI avec l’erreur STATUS_OBJECT_TYPE_MISMATCH.

DxgkDdiRestoreImmutableMigrationData ne doit être appelé que pour les machines virtuelles actuellement en pause.

Pour plus d’informations, consultez Migration dynamique sur les appareils GPU-P.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11, version 24H2 (WDDM 3.2)
En-tête d3dkmddi.h
IRQL PASSIVE_LEVEL

Voir aussi

DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData