Comparteix a través de


IHostAssemblyStore::P rovideAssembly (Método)

Obtiene una referencia a un ensamblado al que no hace referencia ICLRAssemblyReferenceList que se devuelve de IHostAssemblyManager::GetNonHostStoreAssemblies. Common Language Runtime (CLR) llama ProvideAssembly a para cada ensamblado que no aparece en la lista.

Sintaxis

HRESULT ProvideAssembly (
    [in]  AssemblyBindInfo *pBindInfo,
    [out] UINT64           *pAssemblyId,
    [out] UINT64           *pHostContext,
    [out] IStream          **ppStmAssemblyImage,
    [out] IStream          **ppStmPDB
);

Parámetros

pBindInfo [in] Puntero a una instancia de AssemblyBindInfo que usa el host para determinar determinadas características de enlace, incluida la presencia o ausencia de cualquier directiva de control de versiones, y a qué ensamblado se va a enlazar.

pAssemblyId [out] Puntero a un identificador único para el ensamblado solicitado para este IStream.

pHostContext [out] Puntero a datos específicos del host que se usan para determinar la evidencia del ensamblado solicitado sin necesidad de una llamada de invocación de plataforma. pHostContext corresponde a la HostContext propiedad de la clase administrada Assembly .

ppStmAssemblyImage [out] Puntero a la dirección de que IStream contiene la imagen portable ejecutable (PE) que se va a cargar o null si no se encuentra el ensamblado.

ppStmPDB [out] Puntero a la dirección de que IStream contiene la información de depuración de programa (PDB) o null si no se encontró el archivo .pdb.

Valor devuelto

HRESULT Descripción
S_OK ProvideAssembly se devolvió correctamente.
HOST_E_CLRNOTAVAILABLE CLR no se ha cargado en un proceso o CLR está en un estado en el que no puede ejecutar código administrado ni procesar la llamada correctamente.
HOST_E_TIMEOUT Se agota el tiempo de espera de la llamada.
HOST_E_NOT_OWNER El autor de la llamada no posee el bloqueo.
HOST_E_ABANDONED Se canceló un evento mientras un subproceso bloqueado o fibra estaba esperando.
E_FAIL Se produjo un error catastrófico desconocido. Cuando un método devuelve E_FAIL, CLR ya no se puede usar dentro del proceso. Las llamadas posteriores a los métodos de hospedaje devuelven HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) No se pudo encontrar el ensamblado solicitado.
E_NOT_SUFFICIENT_BUFFER El tamaño del búfer especificado por pAssemblyId no es lo suficientemente grande como para contener el identificador que el host quiere devolver.

Observaciones

El host especifica el valor de identidad devuelto para pAssemblyId . Los identificadores deben ser únicos dentro de la duración de un proceso. CLR usa este valor como identificador único para la secuencia. Comprueba cada valor con los valores devueltos pAssemblyId por otras llamadas a ProvideAssembly. Si el host devuelve el mismo pAssemblyId valor para otro IStream, CLR comprueba si el contenido de esa secuencia ya se ha asignado. Si es así, el tiempo de ejecución carga la copia existente de la imagen en lugar de asignar una nueva.

Requisitos

Plataformas: Consulte Requisitos del sistema.

Encabezado: MSCorEE.h

Biblioteca: Incluido como recurso en MSCorEE.dll

Versiones de .NET Framework: Disponible desde la versión 2.0

Consulte también