Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica as alterações nos metadados e as alterações no código CIL (common intermediate Language) ao processo em execução.
Sintaxe
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Parâmetros
cbMetadata [in] Tamanho, em bytes, dos metadados delta.
pbMetadata [in] Buffer que contém os metadados delta. O endereço do buffer é retornado do método IMetaDataEmit2::SaveDeltaToMemory .
Os RVAs (endereços virtuais relativos) nos metadados devem ser relativos ao início do código CIL.
cbIL [in] Tamanho, em bytes, do código CIL delta.
pbIL [in] Buffer que contém o código CIL atualizado.
Observações
O pbMetadata parâmetro está em um formato especial de metadados delta (como saída por IMetaDataEmit2::SaveDeltaToMemory).
pbMetadata usa metadados anteriores como base e descreve alterações individuais a serem aplicadas a essa base.
Por outro lado, o pbIL[parâmetro ] contém o novo CIL para o método atualizado e deve substituir completamente o CIL anterior para esse método
Quando o CIL delta e os metadados foram criados na memória do depurador, o depurador chama ApplyChanges para enviar as alterações para o CLR (Common Language Runtime). O runtime atualiza suas tabelas de metadados, coloca o novo CIL no processo e configura uma compilação JIT (just-in-time) do novo CIL. Quando as alterações tiverem sido aplicadas, o depurador deverá chamar IMetaDataEmit2::ResetENCLog para se preparar para a próxima sessão de edição. Em seguida, o depurador pode continuar o processo.
Sempre que o depurador chama ApplyChanges um módulo que tem metadados delta, ele também deve chamar IMetaDataEmit::ApplyEditAndContinue com os mesmos metadados delta em todas as suas cópias dos metadados desse módulo, exceto para a cópia usada para emitir as alterações. Se uma cópia dos metadados de alguma forma ficar fora de sincronia com os metadados reais, o depurador sempre poderá jogar fora essa cópia e obter uma nova cópia.
Se o ApplyChanges método falhar, a sessão de depuração estará em um estado inválido e deverá ser reiniciada.
Requirements
Plataformas: Consulte sistemas operacionais com suporte do .NET.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versões do .NET: Disponível desde o .NET Framework 2.0