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