Бөлісу құралы:


Метод IHostAssemblyStore::P rovideAssembly

Возвращает ссылку на сборку, на которую не ссылается ICLRAssemblyReferenceList , возвращаемой из IHostAssemblyManager::GetNonHostStoreAssemblies. Среда 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 HostContext соответствует свойству управляемого Assembly класса.

ppStmAssemblyImage [out] Указатель на адрес, IStream содержащий переносимый исполняемый образ (PE), который нужно загрузить, или значение NULL, если сборка не найдена.

ppStmPDB [out] Указатель на адрес, IStream содержащий сведения об отладке программы (PDB), или значение NULL, если PDB-файл не найден.

Возвращаемое значение

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 узла. Идентификаторы должны быть уникальными в течение времени существования процесса. Среда CLR использует это значение в качестве уникального идентификатора для потока. Он проверяет каждое значение по значениям, pAssemblyId возвращаемым другими вызовами ProvideAssembly. Если узел возвращает то же pAssemblyId значение для другого IStream, среда CLR проверяет, сопоставлено ли содержимое этого потока. Если это так, среда выполнения загружает существующую копию изображения вместо сопоставления новой.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: MSCorEE.h

Библиотека: Включен как ресурс в MSCorEE.dll

Версии .NET Framework: Доступно с версии 2.0

См. также