IHostAssemblyStore::ProvideAssembly (Método)
Obtiene una referencia a un ensamblado al que no hace referencia la ICLRAssemblyReferenceList devuelta por IHostAssemblyManager::GetNonHostStoreAssemblies. Common Language Runtime (CLR) llama a ProvideAssembly para cada ensamblado que no aparece en la lista.
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 utilizada por el host para determinar ciertas características de enlace, incluida la presencia o ausencia de directivas de control de versiones, así como el ensamblado al que se va a realizar el enlace.pAssemblyId
[out] Puntero a un identificador único para el ensamblado solicitado para esta instancia de IStream.pHostContext
[out] Puntero a unos datos específicos del host que se usan para determinar la existencia del ensamblado solicitado sin necesidad de realizar una llamada de invocación de plataforma. pHostContext corresponde a la propiedad HostContext de la clase Assembly administrada.ppStmAssemblyImage
[out] Puntero a la dirección de una instancia de IStream que contiene la imagen portable ejecutable (PE) que se va a cargar, o null si no se pudo encontrar el ensamblado.ppStmPDB
[out] Puntero a la dirección de una instancia de IStream que contiene la información de depuración del programa (PDB), o null si no se pudo encontrar el archivo .pdb.
Valor devuelto
HRESULT |
Descripción |
---|---|
S_OK |
ProvideAssembly finalizó correctamente. |
HOST_E_CLRNOTAVAILABLE |
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. |
COR_E_FILENOTFOUND (0x80070002) |
No se pudo localizar el ensamblado solicitado. |
ERROR_INSUFFICIENT_BUFFER |
El tamaño de búfer especificado por pAssemblyId no es lo suficientemente grande como para almacenar el identificador que desea devolver el host. |
Comentarios
El host especifica el valor de identidad devuelto para pAssemblyId. 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. Compara cada valor con los valores para pAssemblyId devueltos por otras llamadas a ProvideAssembly. Si el host devuelve el mismo valor de pAssemblyId para otra instancia de IStream, CLR comprueba si el contenido de esa secuencia ya se ha asignado. En ese caso, el motor en tiempo de ejecución carga la copia existente de la imagen en lugar de asignar una nueva.
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)
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Junio de 2010 |
Se corrigió el valor HRESULT devuelto cuando no se puede localizar el ensamblado. |
Comentarios de los clientes. |