Compartir a través de


IHostAssemblyStore::ProvideModule (Método)

Resuelve un módulo en un ensamblado o un archivo de recursos vinculado (pero no insertado).

Sintaxis

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

Parámetros

pBindInfo
[in] Puntero a una instancia ModuleBindInfo que describe el nombre del módulo, el ensamblado y el elemento AppDomain del módulo solicitado.

pdwModuleId
[out] Puntero a un identificador único para el elemento IStream que contiene el módulo cargado.

ppStmModuleImage
[out] Puntero a la dirección de un objeto IStream, que contiene la imagen portátil ejecutable (PE) que se va a cargar, o null si no se ha encontrado el módulo.

ppStmPDB
[out] Puntero a la dirección de un objeto IStream, que contiene la información de depuración del programa (PDB) para el módulo solicitado, o null si no se ha encontrado el archivo .pdb.

Valor devuelto

HRESULT Descripción
S_OK ProvideModule se devolvió correctamente.
HOST_E_CLRNOTAVAILABLE El Common Language Runtime (CLR) no se ha cargado en un proceso o se encuentra en un estado en el que no puede ejecutar código administrado o procesar la llamada correctamente.
HOST_E_TIMEOUT Se agotó el tiempo de espera de la llamada.
HOST_E_NOT_OWNER El autor de la llamada no es el propietario del bloqueo.
HOST_E_ABANDONED Se canceló un evento mientras que una fibra o subproceso que estaba bloqueado lo estaba esperando.
E_FAIL Ocurrió un error grave desconocido. Si un método devuelve el valor E_FAIL, el CLR ya no se podrá usar en el proceso. Las llamadas que se hagan a los métodos de hospedaje posteriormente devolverán el valor HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) No se ha podido encontrar el ensamblado solicitado ni el recurso vinculado.
E_NOT_SUFFICIENT_BUFFER pdwModuleId no es lo suficientemente grande como para contener el identificador que el host quiere devolver.

Comentarios

El host especifica el valor de identidad devuelto para pdwModuleId. Los identificadores deben ser únicos durante la vigencia de un proceso. CLR usa este valor como identificador único para la secuencia asociada. Comprueba cada valor con los valores de pAssemblyId que han devuelto llamadas a ProvideAssembly y con los valores de pdwModuleId que han devuelto otras llamadas a ProvideModule. Si el host devuelve el mismo valor de identificador para otro elemento IStream, CLR comprueba si el contenido de esa secuencia ya se ha asignado. Si es así, CLR carga la copia existente de la imagen en lugar de asignar una nueva. Por lo tanto, el identificador tampoco debe superponerse con los identificadores de ensamblado devueltos de ProvideAssembly.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MSCorEE.h

Biblioteca: incluida como recurso en MSCorEE.dll

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también