Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Obtém uma referência a uma assembly que não é referenciada pelo ICLRAssemblyReferenceList que é devolvido de IHostAssemblyManager::GetNonHostStoreAssemblies. O runtime de linguagem comum (CLR) chama ProvideAssembly para cada assembly 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 [dentro] Um apontador para uma instância AssemblyBindInfo que o anfitrião usa para determinar certas características de ligação, incluindo a presença ou ausência de qualquer política de versão, e a que assembly deve ligar.
pAssemblyId [fora] Um apontador para um identificador único para o conjunto solicitado para este IStream.
pHostContext [fora] Um apontador para dados específicos do host que é usado para determinar a evidência do assembly solicitado sem 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 ser carregada, ou nulo se o assembly não pudesse ser encontrado.
ppStmPDB [fora] Um apontador para o endereço de um IStream que contém a informação de depuração do programa (PDB), ou nulo se o ficheiro .pdb não pudesse ser encontrado.
Valor de retorno
| HRESULT | Descrição |
|---|---|
| S_OK |
ProvideAssembly regressou com sucesso. |
| HOST_E_CLRNOTAVAILABLE | O CLR não foi carregado num processo, ou o CLR está num estado em que não consegue executar código gerido nem processar a chamada com sucesso. |
| HOST_E_TIMEOUT | A chamada expirou. |
| HOST_E_NOT_OWNER | O chamador não é dono da fechadura. |
| HOST_E_ABANDONED | Um evento foi cancelado enquanto um fio ou fibra bloqueada estava à espera. |
| E_FAIL | Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR deixa de ser utilizado dentro do processo. As chamadas subsequentes para sistemas de alojamento regressam HOST_E_CLRNOTAVAILABLE. |
| COR_E_FILENOTFOUND (0x80070002) | A montagem solicitada não foi possível localizar. |
| E_NOT_SUFFICIENT_BUFFER | O tamanho do buffer especificado por pAssemblyId não é suficientemente grande para conter o identificador que o host pretende devolver. |
Observações
O valor de identidade devolvido para pAssemblyId é especificado pelo anfitrião. Os identificadores devem ser únicos dentro da vida útil de um processo. O CLR utiliza este valor como identificador único para o fluxo. Verifica cada valor com os valores devolvidos pAssemblyId por outras chamadas para ProvideAssembly. Se o host devolver o mesmo pAssemblyId valor para outro IStream, o CLR verifica se o conteúdo desse fluxo já foi mapeado. Se sim, o runtime carrega a cópia existente da imagem em vez de mapear uma nova.
Requisitos
Plataformas: Consulte Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como recurso em MSCorEE.dll
Versões do .NET Framework: Disponível desde: 2.0