Partilhar via


Método de IHostAssemblyStore::ProvideModule

Resolve um arquivo de recurso do módulo dentro de um assembly ou um vinculado (mas não um incorporado).

HRESULT ProvideModule (
    [in]  ModuleBindInfo *pBindInfo,
    [out] DWORD          *pdwModuleId,
    [out] IStream        **ppStmModuleImage,
    [out] IStream        **ppStmPDB
);

Parâmetros

  • pBindInfo
    [in] Um ponteiro para uma ModuleBindInfo instância que descreve o módulo solicitado AppDomain, assembly e o nome do módulo.

  • pdwModuleId
    [out] Um ponteiro para um identificador exclusivo para o IStream que contém o módulo carregado.

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

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

Valor de retorno

HRESULT

Descrição

S_OK

ProvideModuleretornado com êxito.

HOST_E_CLRNOTAVAILABLE

O common language runtime (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.

ERROR_FILE_NOT_FOUND

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

ERROR_INSUFFICIENT_BUFFER

pdwModuleIdnão é grande o suficiente para conter o identificador de host deseja retornar.

Comentários

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

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