Partilhar via


_CorValidateImage Function

Valida imagens de módulos gerenciados e notifica o carregador do sistema operacional depois que elas são carregadas.

Syntax

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

Parameters

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

FileName [em] O nome do arquivo da imagem.

Return Value

Esta função devolve os valores E_INVALIDARGpadrão , E_OUTOFMEMORY, E_UNEXPECTED, e E_FAIL, bem como os seguintes valores.

Return value Description
STATUS_INVALID_IMAGE_FORMAT A imagem é inválida. Este valor tem o HRESULT 0xC000007BL.
STATUS_SUCCESS A imagem é válida. Este valor tem o HRESULT 0x00000000L.

Remarks

No Windows XP e versões posteriores, o carregador do sistema operacional verifica se há módulos gerenciados examinando o bit do diretório do descritor COM no cabeçalho COFF (Common Object File Format). Um bit definido indica um módulo gerenciado. Se o carregador detetar um módulo gerenciado, ele carregará MsCorEE.dll e chamará _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 montagem DLL, o carregador chama a função _CorDllMain .

_CorExeMain ou _CorDllMain executa as seguintes ações:

  • Inicializa o CLR.

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

  • Begins execution.

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 qualquer ação; apenas retorna.

Requirements

Plataformas: Consulte Requisitos do sistema.

Header: Cor.h

Biblioteca: Incluído como recurso no MsCorEE.dll

Versões do .NET Framework: Disponível desde: 1.0