Partilhar via


Método IHostAssemblyStore::P rovideModule

Resolve um módulo numa assemblagem ou num ficheiro de recurso ligado (mas não incorporado).

Sintaxe

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

Parâmetros

pBindInfo
[in] Um ponteiro para uma instância moduleBindInfo que descreve o nome do AppDomainmódulo , assemblagem e módulo pedidos.

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

ppStmModuleImage
[fora] Um ponteiro para o endereço de um IStream objeto, que contém a imagem executável portátil (PE) a carregar ou nulo se não for possível encontrar o módulo.

ppStmPDB
[fora] Um ponteiro para o endereço de um IStream objeto, que contém as informações de depuração do programa (PDB) para o módulo pedido ou nulo se não for possível encontrar o ficheiro .pdb.

Devolver Valor

HRESULT Description
S_OK ProvideModule devolvido com êxito.
HOST_E_CLRNOTAVAILABLE O runtime de linguagem comum (CLR) não foi carregado para um processo ou o CLR está num estado em que não pode executar 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 do mesmo.
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 ou o recurso ligado.
E_NOT_SUFFICIENT_BUFFER pdwModuleId não é grande o suficiente para conter o identificador que o anfitrião quer devolver.

Observações

O valor de identidade devolvido para pdwModuleId é especificado pelo anfitrião. Os identificadores têm de ser exclusivos durante a duração de um processo. O CLR utiliza este valor como o identificador exclusivo do fluxo associado. Verifica cada valor em relação aos valores devolvidos pelas chamadas pAssemblyId para ProvideAssembly e em relação aos valores devolvidos pdwModuleId por outras chamadas para ProvideModule. Se o anfitrião devolver o mesmo valor de identificador para outro IStream, o CLR verifica se o conteúdo desse fluxo já foi mapeado. Em caso afirmativo, o CLR carrega a cópia existente da imagem em vez de mapear uma nova. Por conseguinte, o identificador também não pode sobrepor-se aos identificadores de assemblagem devolvidos a partir de ProvideAssembly.

Requisitos

Plataformas: Veja Requisitos do Sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 2.0

Ver também