Método de IHostAssemblyStore::ProvideAssembly

Obtém uma referência a um assembly que não é referenciado pela ICLRAssemblyReferenceList que é retornado de IHostAssemblyManager::GetNonHostStoreAssemblies. O common language runtime (CLR) chama ProvideAssembly para cada assembly que não aparecem 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 do bind, incluindo a presença ou ausência de qualquer diretiva de versionamento e em qual assembly para vincular a.

  • pAssemblyId
    [out] Um ponteiro para um identificador exclusivo para o assembly solicitado para este IStream.

  • pHostContext
    [out] Chamada de invocação de um ponteiro para dados específicos de host que são usados para determinar a evidência do assembly solicitado sem a necessidade de uma plataforma. pHostContextcorresponde do HostContext propriedade de gerenciados Assembly classe.

  • ppStmAssemblyImage
    [out] Um ponteiro para o endereço de um IStream que contém a imagem executável portátil (PE) para ser carregada ou nulo se o assembly não pôde ser encontrado.

  • ppStmPDB
    [out] Um ponteiro para o endereço de um IStream que contém as informações de depuração (PDB) de programa ou nulo se o arquivo. PDB não pôde ser encontrado.

Valor de retorno

HRESULT

Descrição

S_OK

ProvideAssemblyretornado com êxito.

HOST_E_CLRNOTAVAILABLE

O CLR não foi carregado em um processo ou o CLR é em um estado em que ele não é possível executar código gerenciado ou processar a chamada com êxito.

HOST_E_TIMEOUT

A chamada foi esgotado.

HOST_E_NOT_OWNER

O chamador não possui o bloqueio.

HOST_E_ABANDONED

Um evento foi cancelado, enquanto um segmento bloqueado ou fibra estava esperando por ele.

E_FAIL

Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é usável dentro do processo. As chamadas subseqüentes para hospedar os métodos retornam HOST_E_CLRNOTAVAILABLE.

COR_E_FILENOTFOUND (0X80070002)

O assembly solicitado não pôde ser localizado.

ERROR_INSUFFICIENT_BUFFER

O tamanho do buffer especificado por pAssemblyId não grande o suficiente para conter o identificador de host deseja retornar.

Comentários

O valor de identidade retornado de pAssemblyId é especificado pelo host. Identificadores devem ser exclusivos dentro do tempo de vida de um processo. O CLR usa esse valor como um identificador exclusivo para o fluxo. Ele verifica cada valor contra os valores para pAssemblyId retornado por outras chamadas ProvideAssembly. Se o host retorna o mesmo pAssemblyId valor para outro IStream, o CLR verifica se o conteúdo do fluxo já foi mapeado. Nesse caso, o runtime carrega a cópia existente da imagem em vez do mapeamento de um novo.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso em mscoree

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface de ICLRAssemblyReferenceList

Interface de IHostAssemblyManager

Interface de IHostAssemblyStore

Histórico de alterações

Date

History

Motivo

Junho de 2010

Corrigido o HRESULT retornado quando o assembly não pode ser localizado.

Comentários do cliente.