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