IHostAssemblyStore::ProvideAssembly 메서드
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] 플랫폼 호출 없이 요청된 어셈블리의 증거를 확인하는 데 사용되는 호스트별 데이터에 대한 포인터입니다. pHostContext
는 관리형 Assembly 클래스의 HostContext 속성에 해당합니다.
ppStmAssemblyImage
[out] 로드할 PE(이식 가능 파일) 이미지가 포함된 IStream
의 주소에 대한 포인터이거나, 어셈블리를 찾을 수 없는 경우 null입니다.
ppStmPDB
[out] PDB(프로그램 디버그) 정보를 포함하는 IStream
의 주소에 대한 포인터이거나, .pdb 파일을 찾을 수 없는 경우 null입니다.
Return Value
HRESULT | 설명 |
---|---|
S_OK | ProvideAssembly 가 성공적으로 반환되었습니다. |
HOST_E_CLRNOTAVAILABLE | CLR이 프로세스에 로드되지 않았거나 CLR이 관리 코드를 실행하거나 호출을 성공적으로 처리할 수 없는 상태입니다. |
HOST_E_TIMEOUT | 호출 시간이 초과되었습니다. |
HOST_E_NOT_OWNER | 호출자는 잠금을 소유하지 않습니다. |
HOST_E_ABANDONED | 차단된 스레드 또는 파이버가 이벤트를 기다리는 동안 이벤트가 취소되었습니다. |
E_FAIL | 알 수 없는 치명적인 오류가 발생했습니다. 메서드가 E_FAIL을 반환하면 CLR은 더 이상 프로세스 내에서 사용할 수 없습니다. 호스팅 메서드에 대한 후속 호출은 HOST_E_CLRNOTAVAILABLE을 반환합니다. |
COR_E_FILENOTFOUND(0x80070002) | 요청된 어셈블리를 찾을 수 없습니다. |
E_NOT_SUFFICIENT_BUFFER | pAssemblyId 에 의해 지정된 버퍼 크기가 호스트가 반환하려는 식별자를 포함할 만큼 크지 않습니다. |
설명
pAssemblyId
에 대해 반환되는 ID 값은 호스트가 지정합니다. 식별자는 프로세스 수명 내에서 고유해야 합니다. CLR은 이 값을 스트림의 고유 식별자로 사용합니다. ProvideAssembly
에 대한 다른 호출에서 반환되는 pAssemblyId
값에 대해 각 값을 확인합니다. 호스트가 또 다른 IStream
에 대해 동일한 pAssemblyId
값을 반환하는 경우 CLR은 해당 스트림의 콘텐츠가 이미 매핑되었는지 여부를 확인합니다. 이 경우 런타임은 새 이미지를 매핑하는 대신 이미지의 기존 복사본을 로드합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: MSCorEE.h
라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.
.NET Framework 버전: 2.0부터 사용 가능
참고 항목
.NET