Método IHostAssemblyStore::P rovideAssembly
Obtém uma referência a uma assemblagem que não é referenciada pelo ICLRAssemblyReferenceList que é devolvido de IHostAssemblyManager::GetNonHostStoreAssemblies. O runtime de linguagem comum (CLR) chama ProvideAssembly
cada assemblagem que não aparece na lista.
Sintaxe
HRESULT ProvideAssembly (
[in] AssemblyBindInfo *pBindInfo,
[out] UINT64 *pAssemblyId,
[out] UINT64 *pHostContext,
[out] IStream **ppStmAssemblyImage,
[out] IStream **ppStmPDB
);
Parâmetros
pBindInfo
[in] Um ponteiro para uma instância AssemblyBindInfo que o anfitrião utiliza para determinar determinadas características de enlace, incluindo a presença ou ausência de qualquer política de controlo de versões e a que assemblagem se vincular.
pAssemblyId
[fora] Um ponteiro para um identificador exclusivo para a assemblagem pedida para esta IStream
.
pHostContext
[fora] Um ponteiro para dados específicos do anfitrião que são utilizados para determinar a evidência da assemblagem pedida sem a necessidade de uma chamada de invocação de plataforma. pHostContext
corresponde à HostContext propriedade da classe gerida Assembly .
ppStmAssemblyImage
[fora] Um ponteiro para o endereço de um IStream
que contém a imagem executável portátil (PE) a carregar ou nulo se não for possível localizar a assemblagem.
ppStmPDB
[fora] Um ponteiro para o endereço de um IStream
que contém as informações de depuração do programa (PDB) ou nulo se não for possível localizar o ficheiro .pdb.
Devolver Valor
HRESULT | Description |
---|---|
S_OK | ProvideAssembly devolvido com êxito. |
HOST_E_CLRNOTAVAILABLE | O CLR não foi carregado para um processo ou o CLR está num estado em que não pode executar o código gerido ou processar a chamada com êxito. |
HOST_E_TIMEOUT | A chamada excedeu o limite de tempo. |
HOST_E_NOT_OWNER | O autor da chamada não é o proprietário do bloqueio. |
HOST_E_ABANDONED | Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera. |
E_FAIL | Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE. |
COR_E_FILENOTFOUND (0x80070002) | Não foi possível localizar a assemblagem pedida. |
E_NOT_SUFFICIENT_BUFFER | O tamanho da memória intermédia especificado por pAssemblyId não é grande o suficiente para conter o identificador que o anfitrião quer devolver. |
Observações
O valor de identidade devolvido para pAssemblyId
é especificado pelo anfitrião. Os identificadores têm de ser exclusivos durante a duração de um processo. O CLR utiliza este valor como um identificador exclusivo para o fluxo. Verifica cada valor em relação aos valores devolvidos pAssemblyId
por outras chamadas para ProvideAssembly
. Se o anfitrião devolver o mesmo pAssemblyId
valor para outro IStream
, o CLR verifica se o conteúdo desse fluxo já foi mapeado. Se for o caso, o runtime carrega a cópia existente da imagem em vez de mapear uma nova.
Requisitos
Plataformas: Veja Requisitos de Sistema.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como um recurso no MSCorEE.dll
.NET Framework Versões: Disponível desde 2.0