Condividi tramite


Metodo IHostAssemblyStore::ProvideModule

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

Sintassi

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

Parametri

pBindInfo
[in] Puntatore a un'istanza ModuleBindInfo che descrive il nome del modulo richiesto, l'assembly e il nome del AppDomainmodulo.

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

ppStmModuleImage
[out] Puntatore all'indirizzo di un IStream oggetto che contiene l'immagine pe (Portable Executable) da caricare oppure Null se il modulo non è stato trovato.

ppStmPDB
[out] Puntatore all'indirizzo di un IStream oggetto che contiene le informazioni di debug del programma (PDB) per il modulo richiesto oppure Null se non è stato possibile trovare il file con estensione pdb.

Valore restituito

HRESULT Descrizione
S_OK ProvideModule restituito correttamente.
HOST_E_CLRNOTAVAILABLE Common Language Runtime (CLR) non è stato caricato in un processo oppure CLR si trova in uno stato in cui non è possibile eseguire codice gestito o elaborare correttamente la chiamata.
HOST_E_TIMEOUT Timeout della chiamata.
HOST_E_NOT_OWNER Il chiamante non possiede il blocco.
HOST_E_ABANDONED Un evento è stato annullato durante l'attesa di un thread o di una fibra bloccata.
E_FAIL Si è verificato un errore irreversibile sconosciuto. Quando un metodo restituisce E_FAIL, CLR non è più utilizzabile all'interno del processo. Le chiamate successive ai metodi di hosting restituiscono HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Impossibile individuare l'assembly richiesto o la risorsa collegata.
E_NOT_SUFFICIENT_BUFFER pdwModuleId non è sufficientemente grande da contenere l'identificatore che l'host desidera restituire.

Commenti

Il valore Identity restituito per pdwModuleId viene specificato dall'host. Gli identificatori devono essere univoci entro la durata di un processo. CLR usa questo valore come identificatore univoco per il flusso associato. Controlla ogni valore rispetto ai valori restituiti pAssemblyId dalle chiamate a ProvideAssembly e rispetto ai valori per pdwModuleId restituiti da altre chiamate a ProvideModule. Se l'host restituisce lo stesso valore di identificatore per un altro IStream, CLR controlla se il contenuto di tale flusso è già stato mappato. In tal caso, CLR carica la copia esistente dell'immagine anziché eseguire il mapping di una nuova. Pertanto, l'identificatore non deve sovrapporsi agli identificatori di assembly restituiti da ProvideAssembly.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: Incluso come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile dalla versione 2.0

Vedi anche