IHostAssemblyStore::ProvideModule 메서드

어셈블리 또는 연결(포함이 아님)된 리소스 파일 내의 모듈을 확인합니다.

HRESULT ProvideModule (
    [in]  ModuleBindInfo *pBindInfo,
    [out] DWORD          *pdwModuleId,
    [out] IStream        **ppStmModuleImage,
    [out] IStream        **ppStmPDB
);

매개 변수

  • pBindInfo
    [in] 요청된 모듈의 AppDomain, 어셈블리 및 모듈 이름을 설명하는 ModuleBindInfo 인스턴스에 대한 포인터입니다.

  • pdwModuleId
    [out] 로드된 모듈이 포함된 IStream의 고유 식별자에 대한 포인터입니다.

  • ppStmModuleImage
    [out] 로드할 PE 이미지(이식 가능 이미지)가 포함된 IStream 개체의 주소에 대한 포인터이거나, 모듈을 찾을 수 없는 경우 null입니다.

  • ppStmPDB
    [out] 요청된 모듈에 대한 PDB(프로그램 디버그) 정보가 포함된 IStream 개체의 주소에 대한 포인터이거나, .pdb 파일을 찾을 수 없는 경우 null입니다.

반환 값

HRESULT

설명

S_OK

ProvideModule에서 성공적으로 반환되었습니다.

HOST_E_CLRNOTAVAILABLE

CLR(공용 언어 런타임)이 프로세스에 로드되지 않았거나 관리 코드를 실행할 수 없는 상태 또는 호출을 처리할 수 없는 상태입니다.

HOST_E_TIMEOUT

호출 시간이 초과되었습니다.

HOST_E_NOT_OWNER

호출자가 잠금을 소유하고 있지 않습니다.

HOST_E_ABANDONED

차단된 스레드나 파이버가 기다리던 이벤트가 취소되었습니다.

E_FAIL

알 수 없는 치명적인 오류가 발생했습니다. 메서드가 E_FAIL을 반환하면 프로세스에서 CLR을 더 이상 사용할 수 없습니다. 이후에 호스팅 메서드를 호출하면 HOST_E_CLRNOTAVAILABLE이 반환됩니다.

ERROR_FILE_NOT_FOUND

요청된 어셈블리 또는 링크된 리소스를 찾을 수 없습니다.

ERROR_INSUFFICIENT_BUFFER

pdwModuleId가 작아서 호스트에서 반환할 식별자를 포함할 수 없습니다.

설명

pdwModuleId에 대해 반환되는 ID 값은 호스트에서 지정합니다. 식별자는 프로세스의 수명이 유지되는 동안 고유해야 합니다. CLR에서 이 값은 연결된 스트림의 고유 식별자로 사용됩니다. 공용 언어 런타임에서는 ProvideAssembly를 호출하여 반환된 pAssemblyId 값과 다른 ProvideModule을 호출하여 반환된 pdwModuleId 값을 이 값과 비교합니다. 호스트에서 다른 IStream에 대해 같은 식별자 값을 반환하면 CLR에서는 해당 스트림의 콘텐츠가 이미 매핑되었는지 여부를 확인합니다. 스트림의 콘텐츠가 이미 매핑된 경우 CLR에서는 새로 매핑하지 않고 이미지의 기존 복사본을 로드합니다. 따라서 식별자는 ProvideAssembly에서 반환된 어셈블리 식별자와도 중복되면 안 됩니다.

요구 사항

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

헤더: MSCorEE.h

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

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

참고 항목

참조

ICLRAssemblyReferenceList 인터페이스

IHostAssemblyManager 인터페이스

IHostAssemblyStore 인터페이스