DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA função de retorno de chamada (d3dkmddi.h)
O sistema operacional do lado receptor chama DxgkDdiRestoreImmutableMigrationData para restaurar dados imutáveis que foram salvos pelo driver do lado do envio em uma chamada anterior para DxgkDdiSaveImmutableMigrationData.
Sintaxe
DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA DxgkddiRestoreimmutablemigrationdata;
NTSTATUS DxgkddiRestoreimmutablemigrationdata(
IN_CONST_HANDLE hAdapter,
IN_CONST_PDXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA pArgs
)
{...}
Parâmetros
hAdapter
[in] Um identificador para um bloco de contexto associado a um adaptador de exibição. O driver de miniporta de exibição forneceu anteriormente esse identificador para Dxgkrnl no parâmetro de saída MiniportDeviceContext da função DXGKDDI_ADD_DEVICE .
pArgs
[in] Ponteiro para uma estrutura DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA que contém as informações necessárias para restaurar os dados imutáveis.
Retornar valor
DxgkDdiRestoreImmutableMigrationData retornará STATUS_SUCCESS se a chamada for bem-sucedida. Caso contrário, ele retornará um código NTSTATUS apropriado, como o código de erro STATUS_OBJECT_TYPE_MISMATCH (consulte Comentários).
Comentários
Ao contrário do lado de salvar/enviar que é chamado duas vezes, DxgkDdiRestoreImmutableMigrationData é chamado apenas uma vez porque tem todos os dados necessários para apresentar um buffer de dados completo para o KMD do lado receptor. O driver deve pegar os dados e aplicá-los ao VF que está sendo construído, bem como a qualquer acompanhamento para ele, e deve validar as invariáveis de dados necessárias para uma restauração bem-sucedida.
O buffer é o conteúdo que foi preenchido no lado da origem em DxgkDdiSaveImmutableMigrationData, portanto, o KMD deve estar acompanhando esses dados em um tipo comum. Também deve haver um esquema de controle de versão implementado nos dados de conteúdo se os dados potencialmente precisarem ser alterados com novos drivers, e esse esquema deve fazer parte da verificação de versão feita no destino.
Se os dados indicarem que o sistema de destino não está configurado corretamente para que o VF seja migrado da origem, o KMD deverá fazer o seguinte:
- Relate esse problema por meio do DxgkCbLogEtwEvent com o identificador de GUID_DxgkAzureTriageEvent e detalhes específicos sobre o que falhou na validação para que o problema possa ser triagem e corrigido.
- Retorne dessa chamada DDI com o erro STATUS_OBJECT_TYPE_MISMATCH.
DxgkDdiRestoreImmutableMigrationData só deve ser chamado para VFs que estão em pausa no momento.
Para obter mais informações, consulte Migração dinâmica em dispositivos GPU-P.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 11, versão 24H2 (WDDM 3.2) |
Cabeçalho | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |