Compartir a través de


IHostAssemblyStore::ProvideModule (Método)

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 finalizó 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.h

Biblioteca: Se incluye como recurso en MsCorEE.dll

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICLRAssemblyReferenceList (Interfaz)

IHostAssemblyManager (Interfaz)

IHostAssemblyStore (Interfaz)