Método IHostAssemblyStore::ProvideAssembly
Obtém uma referência a um assembly que não forem citado pelo ICLRAssemblyReferenceList retornado por IHostAssemblyManager::GetNonHostStoreAssemblies. O common linguagem tempo de execução (CLR) chama ProvideAssembly para cada assembly que não aparece na lista.
HRESULT ProvideAssembly (
[in] AssemblyBindInfo *pBindInfo,
[out] UINT64 *pAssemblyId,
[out] UINT64 *pHostContext,
[out] IStream **ppStmAssemblyImage,
[out] IStream **ppStmPDB
);
Parâmetros
pBindInfo
[in] Um ponteiro para um AssemblyBindInfo instância que o host o utiliza para determinar a certas características de vinculação, incluindo a presença ou ausência de qualquer diretiva de controle de versão e qual assembly para BIND a.pAssemblyId
[out] Um ponteiro para um identificador exclusivo para o assembly solicitado para esse IStream.pHostContext
[out] telefonar de invocação de um ponteiro para dados específica do host usado para determinar a evidência do assembly solicitado sem a necessidade de uma plataforma. pHostContext corresponde do HostContext propriedade do gerenciado Assembly classe.ppStmAssemblyImage
[out] Um ponteiro para o endereço de um IStream que contém a imagem (PE) executável portátil para ser carregado ou nulo se o assembly não foi encontrado.ppStmPDB
[out] Um ponteiro para o endereço de um IStream que contém a informações de depurar (PDB) do programa, ou nulo se o arquivo .pdb não pôde ser encontrado.
Valor de retorno
HRESULT |
Descrição |
---|---|
S_OK |
ProvideAssembly retornado com êxito. |
HOST_E_CLRNOTAVAILABLE |
O CLR não foi carregado em um processo ou o CLR está em um estado em que ele não possa executar código gerenciado ou processar a telefonar com êxito. |
HOST_E_TIMEOUT |
A telefonar expirou. |
HOST_E_NOT_OWNER |
O chamador não é proprietário do bloquear. |
HOST_E_ABANDONED |
Um evento foi cancelado enquanto um segmento bloqueado ou fibra estava aguardando nele. |
E_FAIL |
Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é mais útil dentro do processo. As chamadas subseqüentes à hospedagem métodos retornam HOST_E_CLRNOTAVAILABLE. |
ERROR_FILE_NOT_FOUND |
O assembly solicitado não pôde ser localizado. |
ERROR_INSUFFICIENT_BUFFER |
O dimensionar do buffer especificado por pAssemblyId não é grande o suficiente para conter o identificador de que o host deseja retornar. |
Comentários
O valor de identidade retornado para pAssemblyId é especificado pelo host. Os identificadores devem ser exclusivos dentro do tempo de vida de um processo. O CLR usa esse valor sistema autônomo um identificador exclusivo para o fluxo. Ele verifica cada valor em relação aos valores de pAssemblyId retornado por outras chamadas para ProvideAssembly. Se o host retorna o mesmo pAssemblyId valor para outro IStream, o CLR verifica se o Sumário de fluxo que já foram mapeado. Nesse caso, o tempo de execução carrega a cópia existente da imagem em vez de um novo mapeamento.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: MSCorEE.idl
Biblioteca: Incluído sistema autônomo um recurso em MSCorEE.dll
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0
Consulte também
Referência
Interface ICLRAssemblyReferenceList