IHostAssemblyStore::ProvideModule (Método)
Actualización: noviembre 2007
Resuelve un módulo de un ensamblado o un archivo de recursos vinculado (pero no incrustado).
HRESULT ProvideModule (
[in] ModuleBindInfo *pBindInfo,
[out] DWORD *pdwModuleId,
[out] IStream **ppStmModuleImage,
[out] IStream **ppStmPDB
);
Parámetros
pBindInfo
[in] Puntero a una instancia de ModuleBindInfo que describe el objeto AppDomain, el ensamblado y el nombre del módulo solicitado.pdwModuleId
[out] Puntero a un identificador único para el objeto IStream que contiene el módulo cargado.ppStmModuleImage
[out] Puntero a la dirección de un objeto IStream que contiene la imagen portable ejecutable (PE) que se va a cargar, o NULL si no se ha podido encontrar 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 pudo encontrar el archivo .pdb.
Valor devuelto
HRESULT |
Descripción |
---|---|
S_OK |
ProvideModule se devolvió correctamente. |
HOST_E_CLRNOTAVAILABLE |
Common Language Runtime (CLR) no se ha cargado en un proceso o está en un estado en el que no puede ejecutar el 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 llamador no posee el bloqueo. |
HOST_E_ABANDONED |
Se canceló un evento mientras una fibra o un subproceso bloqueado estaba esperándole. |
E_FAIL |
Se ha producido un error catastrófico desconocido. Si un método devuelve E_FAIL, CLR no se puede seguir utilizando en el proceso. Las llamadas subsiguientes a métodos de hospedaje devuelven HOST_E_CLRNOTAVAILABLE. |
ERROR_FILE_NOT_FOUND |
No se ha podido localizar el ensamblado o el recurso vinculado solicitado. |
ERROR_INSUFFICIENT_BUFFER |
pdwModuleId no es lo suficientemente grande como para contener el identificador que el host desea devolver. |
Comentarios
El valor de identidad devuelto para pdwModuleId lo especifica el host. Los identificadores deben ser únicos dentro del período de duración de un proceso. CLR utiliza este valor como identificador único de la secuencia asociada. Compara cada uno de los valores con los valores de pAssemblyId devueltos por las llamadas a ProvideAssembly y con los valores de pdwModuleId devueltos por otras llamadas a ProvideModule. Si el host detecta que un valor coincide con el valor de identificador de otro objeto IStream, CLR comprueba si ya se ha asignado el contenido de esa secuencia. En ese caso, 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 desde ProvideAssembly.
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: MSCorEE.idl
Biblioteca: se incluye como recurso en MsCorEE.dll
Versiones de .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0