DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA funzione di callback (d3dkmddi.h)

Il sistema operativo lato ricezione chiama DxgkDdiRestoreImmutableMigrationData per ripristinare i dati non modificabili salvati dal driver lato invio in una chiamata precedente a DxgkDdiSaveImmutableMigrationData.

Sintassi

DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA DxgkddiRestoreimmutablemigrationdata;

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

Parametri

hAdapter

[in] Handle a un blocco di contesto associato a una scheda di visualizzazione. Il driver miniport visualizzato in precedenza ha fornito questo handle a Dxgkrnl nel parametro di output MiniportDeviceContext della funzione DXGKDDI_ADD_DEVICE .

pArgs

[in] Puntatore a una struttura DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA che contiene informazioni necessarie per ripristinare i dati non modificabili.

Valore restituito

DxgkDdiRestoreImmutableMigrationData restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, restituisce un codice NTSTATUS appropriato, ad esempio il codice di errore STATUS_OBJECT_TYPE_MISMATCH (vedere Osservazioni).

Commenti

A differenza del lato salva/invio chiamato due volte, DxgkDdiRestoreImmutableMigrationData viene chiamato una sola volta perché contiene tutti i dati necessari per presentare un buffer di dati completo al kmD lato ricevente. Il driver deve accettare i dati e applicarli al VF in fase di costruzione, oltre a qualsiasi rilevamento per esso e deve convalidare i dati invarianti necessari per un ripristino riuscito.

Il buffer è il contenuto che è stato riempito sul lato origine in DxgkDdiSaveImmutableMigrationData, quindi kmD deve tenere traccia di tali dati in un tipo comune. È necessario anche implementare uno schema di controllo delle versioni nei dati del contenuto se i dati potrebbero potenzialmente dover cambiare con i nuovi driver e questo schema deve essere una parte del controllo della versione eseguito sulla destinazione.

Se i dati indicano che il sistema di destinazione non è configurato correttamente per avere eseguito la migrazione di VF dall'origine, il kmD deve eseguire le operazioni seguenti:

  1. Segnalare questo problema tramite DxgkCbLogEtwEvent con l'identificatore GUID_DxgkAzureTriageEvent e dettagli specifici sulla convalida non riuscita in modo che il problema possa essere sottoposto a valutazione e corretto.
  2. Restituisce da questa chiamata DDI con l'errore di STATUS_OBJECT_TYPE_MISMATCH.

DxgkDdiRestoreImmutableMigrationData deve essere chiamato solo per le macchine virtuali attualmente sospese.

Per altre informazioni, vedere Migrazione in tempo reale nei dispositivi GPU-P.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 versione 24H2 (WDDM 3.2)
Intestazione d3dkmddi.h
IRQL PASSIVE_LEVEL

Vedi anche

DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData