업데이트: 2010년 6월
IHostAssemblyManager::GetNonHostStoreAssemblies에서 반환된 ICLRAssemblyReferenceList에서 참조하지 않는 어셈블리에 대한 참조를 가져옵니다. CLR(공용 언어 런타임)에서는 이 목록에 없는 각 어셈블리에 대해 ProvideAssembly를 호출합니다.
HRESULT ProvideAssembly (
[in] AssemblyBindInfo *pBindInfo,
[out] UINT64 *pAssemblyId,
[out] UINT64 *pHostContext,
[out] IStream **ppStmAssemblyImage,
[out] IStream **ppStmPDB
);
매개 변수
pBindInfo
[in] 버전 관리 정책이 있는지 여부 및 바인딩할 어셈블리와 같은 특정 바인드 특징을 확인하기 위해 호스트에서 사용하는 AssemblyBindInfo 인스턴스에 대한 포인터입니다.pAssemblyId
[out] 이 IStream에 대한 요청된 어셈블리의 고유 식별자에 대한 포인터입니다.pHostContext
[out] P/Invoke를 호출할 필요 없이 요청된 어셈블리의 증명 정보를 확인하는 데 사용되는 호스트 관련 데이터에 대한 포인터입니다. pHostContext는 관리되는 Assembly 클래스의 HostContext 속성에 해당합니다.ppStmAssemblyImage
[out] 로드할 PE(이식 가능 파일) 이미지가 포함된 IStream의 주소에 대한 포인터거나, 어셈블리를 찾을 수 없는 경우에는 null입니다.ppStmPDB
[out] PDB(프로그램 디버그) 정보가 포함된 IStream의 주소에 대한 포인터이거나, .pdb 파일을 찾을 수 없는 경우에는 null입니다.
반환 값
HRESULT |
설명 |
---|---|
S_OK |
ProvideAssembly에서 성공적으로 반환되었습니다. |
HOST_E_CLRNOTAVAILABLE |
CLR이 프로세스에 로드되지 않았거나 관리 코드를 실행할 수 없는 상태 또는 호출을 처리할 수 없는 상태입니다. |
HOST_E_TIMEOUT |
호출 시간이 초과되었습니다. |
HOST_E_NOT_OWNER |
호출자가 잠금을 소유하고 있지 않습니다. |
HOST_E_ABANDONED |
차단된 스레드나 파이버가 기다리던 이벤트가 취소되었습니다. |
E_FAIL |
알 수 없는 치명적인 오류가 발생했습니다. 메서드가 E_FAIL을 반환하면 프로세스에서 CLR을 더 이상 사용할 수 없습니다. 이후에 호스팅 메서드를 호출하면 HOST_E_CLRNOTAVAILABLE이 반환됩니다. |
COR_E_FILENOTFOUND (0x80070002) |
요청한 어셈블리를 찾을 수 없습니다. |
ERROR_INSUFFICIENT_BUFFER |
pAssemblyId에 지정된 버퍼 크기가 작아서 호스트에서 반환할 식별자를 저장할 수 없습니다. |
설명
pAssemblyId에 대해 반환되는 ID 값은 호스트에서 지정합니다. 식별자는 프로세스의 수명이 유지되는 동안 고유해야 합니다. CLR에서는 이 값을 스트림의 고유 식별자로 사용합니다. 공용 언어 런타임에서는 다른 ProvideAssembly를 호출하여 반환된 pAssemblyId 값을 이 값과 비교합니다. 호스트에서 다른 IStream에 대해 같은 pAssemblyId 값을 반환하면 CLR에서는 해당 스트림의 콘텐츠가 이미 매핑되었는지 확인합니다. 스트림의 콘텐츠가 이미 매핑된 경우 런타임에서는 새로 매핑하지 않고 이미지의 기존 복사본을 로드합니다.
요구 사항
플랫폼: .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 인터페이스
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2010년 6월 |
어셈블리를 찾을 수 없을 때 반환된 HRESULT를 수정했습니다. |
고객 의견 |