_CorValidateImage 함수

관리되는 모듈 이미지가 유효한지 검사하고 관리되는 모듈 이미지가 로드되면 운영 체제 로더에 알립니다.

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

매개 변수

  • ImageBase
    [in] 유효한 관리 코드인지 검사할 이미지의 시작 위치를 가리키는 포인터입니다. 이미지는 이미 메모리에 로드되어 있어야 합니다.

  • FileName
    [in] 이미지의 파일 이름입니다.

반환 값

이 함수는 다음 값뿐만 아니라 표준 값인 E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED 및 E_FAIL도 반환합니다.

반환 값

설명

STATUS_INVALID_IMAGE_FORMAT

잘못된 이미지입니다. 이 값은 HRESULT 0xC000007BL을 포함합니다.

STATUS_SUCCESS

올바른 이미지입니다. 이 값은 HRESULT 0x00000000L을 포함합니다.

설명

Windows XP 이상의 버전에서 운영 체제 로더는 COFF(Common Object File Format) 헤더의 COM Descriptor Directory 비트를 검사하여 관리되는 모듈인지 확인합니다. 이 경우, 설정되어 있는 하나의 비트는 하나의 관리되는 모듈에 해당합니다. 로드가 관리되는 모듈을 발견하면 MsCorEE.dll을 로드하고 다음 작업을 수행하는 _CorValidateImage를 호출합니다.

  • 이미지가 유효한 관리되는 모듈인지 확인합니다.

  • 이미지의 진입점을 CLR(공용 언어 런타임)의 진입점으로 변경합니다.

  • 64비트 버전 Windows의 경우 메모리에 있는 이미지를 PE32 형식에서 PE32+ 형식으로 변환하여 수정합니다.

  • 관리되는 모듈 이미지가 로드될 때 로더에 반환합니다.

실행 가능 이미지의 경우 운영 체제 로더는 실행 파일에 지정된 진입점에 관계없이 _CorExeMain 함수를 호출합니다. DLL 어셈블리 이미지의 경우 로더는 _CorDllMain 함수를 호출합니다.

_CorExeMain 또는 _CorDllMain는 다음 작업을 수행합니다.

  • CLR을 초기화합니다.

  • 어셈블리의 CLR 헤더에서 관리되는 진입점을 찾습니다.

  • 실행을 시작합니다.

관리되는 모듈 이미지를 언로드할 때 로더는 _CorImageUnloading 함수를 호출합니다. 그러나, 이 함수는 모든 작업을 수행하지 않고 바로 반환합니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: Cor.h

라이브러리: MsCorEE.dll에 리소스로 포함됨

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

참고 항목

기타 리소스

메타데이터 전역 정적 함수