Поделиться через


Метод IHostAssemblyStore::ProvideModule

Обновлен: Ноябрь 2007

Разрешает модуль в сборке или связанный (но не внедренный) файл ресурса.

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

Параметры

  • pBindInfo
    [in] Указатель экземпляра ModuleBindInfo, описывающего AppDomain запрошенного модуля, сборку и имя модуля.

  • pdwModuleId
    [out] Указатель уникального идентификатора IStream, содержащего загруженный модуль.

  • ppStmModuleImage
    [out] Указатель адреса объекта IStream, содержащий загружаемый PE-образ или значение NULL, если модуль не найден.

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

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

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

Требования

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

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

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

Версии платформы .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

См. также

Ссылки

Интерфейс ICLRAssemblyReferenceList

Интерфейс IHostAssemblyManager

Интерфейс IHostAssemblyStore