다음을 통해 공유


_CorValidateImage 함수

관리되는 모듈 이미지의 유효성을 검사하고 로드된 후 운영 체제 로더에 알합니다.

구문

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

매개 변수

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

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

반환 값

이 함수는 표준 값 E_INVALIDARG, , E_OUTOFMEMORYE_UNEXPECTED, 및 와 E_FAIL다음 값을 반환합니다.

반환 값 설명
STATUS_INVALID_IMAGE_FORMAT 이미지가 잘못되었습니다. 이 값에는 HRESULT 0xC000007BL이 있습니다.
STATUS_SUCCESS 이미지가 유효합니다. 이 값에는 HRESULT 0x00000000L이 있습니다.

설명

Windows XP 이상 버전에서 운영 체제 로더는 COFF(공용 개체 파일 형식) 헤더에서 COM 설명자 디렉터리 비트를 검사하여 관리되는 모듈을 확인합니다. 설정된 비트는 관리되는 모듈을 나타냅니다. 로더가 관리되는 모듈을 검색하면 MsCorEE.dll 로드하고 를 호출 _CorValidateImage하여 다음 작업을 수행합니다.

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

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

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

  • 관리되는 모듈 이미지가 로드되면 로더로 돌아갑니다.

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

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

  • CLR을 초기화합니다.

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

  • 실행을 시작합니다.

로더는 관리되는 모듈 이미지가 언로드될 때 _CorImageUnloading 함수를 호출합니다. 그러나 이 함수는 아무 작업도 수행하지 않습니다. 그냥 반환합니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: Cor.h

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

.NET Framework 버전: 1.0부터 사용 가능

참고 항목