Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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