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:
- 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.
- 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 |