Condividi tramite


Metodo IHostAssemblyStore::ProvideModule

Risolve un modulo all'interno di un assembly o un file di risorse collegato (non incorporato).

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

Parametri

  • pBindInfo
    [in] Puntatore a un'istanza di ModuleBindInfo che descrive il dominio applicazione AppDomain, l'assembly e il nome del modulo richiesto.

  • pdwModuleId
    [out] Puntatore a un identificatore univoco per l'oggetto IStream contenente il modulo caricato.

  • ppStmModuleImage
    [out] Puntatore all'indirizzo di un oggetto IStream contenente l'immagine eseguibile di tipo PE da caricare oppure null se il modulo non è stato trovato.

  • ppStmPDB
    [out] Puntatore all'indirizzo di un oggetto IStream contenente le informazioni di debug del programma (PDB) per il modulo richiesto oppure null se il file con estensione pdb non è stato trovato.

Valore restituito

HRESULT

Oggetto di descrizione

S_OK

ProvideModule ha restituito correttamente un valore.

HOST_E_CLRNOTAVAILABLE

Common Language Runtime non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare correttamente la chiamata.

HOST_E_TIMEOUT

Timeout della chiamata.

HOST_E_NOT_OWNER

Il chiamante non è il proprietario del blocco.

HOST_E_ABANDONED

Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento.

E_FAIL

Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE.

ERROR_FILE_NOT_FOUND

Impossibile individuare l'assembly richiesto o la risorsa collegata.

ERROR_INSUFFICIENT_BUFFER

pdwModuleId non è sufficiente a contenere l'identificatore che deve essere restituito dall'host.

Note

Il valore di identità restituito per pdwModuleId viene specificato dall'host. Gli identificatori devono essere univoci per l'intero ciclo di vita di un processo. CLR utilizza questo valore come l'identificatore univoco per il flusso associato. Ciascun valore viene confrontato con i valori di pAssemblyId restituiti da chiamate a ProvideAssembly e con i valori di pdwModuleId restituiti da altre chiamate a ProvideModule. Se l'host restituisce lo stesso identificatore per un altro flusso (IStream), CLR verifica se il contenuto di tale flusso è già stato sottoposto a mapping. In caso affermativo, anziché eseguire il mapping di un nuovo flusso, verrà caricata la copia esistente dell'immagine. L'identificatore non deve quindi sovrapporsi agli identificatori assembly restituiti da ProvideAssembly.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: inclusa come risorsa in MSCorEE.dll

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Interfaccia ICLRAssemblyReferenceList

Interfaccia IHostAssemblyManager

Interfaccia IHostAssemblyStore