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