IHostAssemblyStore::ProvideAssembly (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 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 el host usa 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 un objeto IStream
que contiene la imagen portable ejecutable (PE) que se va a cargar, o null si no se encontró el ensamblado.
ppStmPDB
[out] Puntero a la dirección de un objeto IStream
que contiene la información de depuración del 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 | Si se devuelve este valor, significa que 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 ni 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 localizar el conjunto 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. |
Comentarios
El host especifica el valor de identidad devuelto para pAssemblyId
. Los identificadores deben ser únicos durante la vigencia de un proceso. CLR usa este valor como identificador único para la secuencia. Comprueba cada valor con los valores devueltos a 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 runtime carga la copia existente de la imagen en lugar de asignar una nueva.
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