Função _CorValidateImage

Valida as imagens do módulo gerenciado e notifica o carregador do sistema operacional após o carregamento.

Sintaxe

STDAPI _CorValidateImage (
   [in] PVOID* ImageBase,  
   [in] LPCWSTR FileName  
);  

Parâmetros

ImageBase
[in] Um ponteiro para o local inicial da imagem para validar como código gerenciado. A imagem já deve estar carregada na memória.

FileName
[in] O nome do arquivo da imagem.

Valor Retornado

Essa função retorna os valores padrão E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTEDe E_FAIL, bem como os valores a seguir.

Valor retornado Descrição
STATUS_INVALID_IMAGE_FORMAT A imagem é inválida. Este valor tem o HRESULT 0xC000007BL.
STATUS_SUCCESS A imagem é inválida. Este valor tem o HRESULT 0x00000000L.

Comentários

No Windows XP e versões posteriores, o carregador do sistema operacional verifica os módulos gerenciados examinando o bit do diretório do descritor COM no cabeçalho do formato de arquivo de objeto comum (COFF). Um bit definido indica um módulo gerenciado. Se o carregador detectar um módulo gerenciado, ele carrega MsCorEE.dll e chama _CorValidateImage, que executa as seguintes ações:

  • Confirma que a imagem é um módulo gerenciado válido.

  • Altera o ponto de entrada na imagem para um ponto de entrada no Common Language Runtime (CLR).

  • Para versões de 64 bits do Windows, modifica a imagem que está na memória transformando-a do formato PE32 para PE32+.

  • Retorna ao carregador quando as imagens do módulo gerenciado são carregadas.

Para imagens executáveis, o carregador do sistema operacional chama a função _CorExeMain, independentemente do ponto de entrada especificado no executável. Para imagens de assembly DLL, o carregador chama a função _CorDllMain.

_CorExeMainou_CorDllMain executa as seguintes ações:

  • Inicializa o CLR.

  • Localiza o ponto de entrada gerenciado do cabeçalho CLR do assembly.

  • Inicia a execução.

O carregador chama a função _CorImageUnloading quando as imagens do módulo gerenciado são descarregadas. No entanto, esta função não executa nenhuma ação; apenas retorna.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: Cor.h

Biblioteca: incluída como um recurso no MsCorEE.dll

Versões do .NET Framework: Disponíveis desde a versão 1.0

Confira também