Partilhar via


DXGKDDI_RESTOREIMMUTABLEMIGRATIONDATA função de retorno de chamada (d3dkmddi.h)

As chamadas de sistema operacional do lado receptor 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 miniporto 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 informações necessárias para restaurar os dados imutáveis.

Valor de retorno

DxgkDdiRestoreImmutableMigrationData retornará STATUS_SUCCESS se a chamada for bem-sucedida. Caso contrário, ele retorna um código NTSTATUS apropriado, como o código de erro STATUS_OBJECT_TYPE_MISMATCH (consulte Comentários).

Observações

Ao contrário do lado de salvamento/envio 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 qualquer acompanhamento para ele, e deve validar os dados invariáveis necessários para uma restauração bem-sucedida.

O buffer é o conteúdo que foi preenchido no lado de origem no DxgkDdiSaveImmutableMigrationData, portanto, 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 possivelmente 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:

  1. Relate esse problema por meio do DxgkCbLogEtwEvent com o identificador de GUID_DxgkAzureTriageEvent e detalhes específicos sobre qual validação falhou para que o problema possa ser triagem e corrigido.
  2. 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 ao vivo em dispositivos GPU-P.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 11, versão 24H2 (WDDM 3.2)
cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Consulte também

DXGKARG_GPUP_RESTORE_IMMUTABLE_MIGRATION_DATA

DxgkDdiSaveImmutableMigrationData