Condividi tramite


Metodo IHostAssemblyStore::ProvideAssembly

Ottiene un riferimento a un assembly non a cui fa riferimento ICLRAssemblyReferenceList restituito da IHostAssemblyManager::GetNonHostStoreAssemblies. Le chiamate ProvideAssembly CLR (Common Language Runtime) per ogni assembly non visualizzato nell'elenco.

Sintassi

HRESULT ProvideAssembly (  
    [in]  AssemblyBindInfo *pBindInfo,  
    [out] UINT64           *pAssemblyId,  
    [out] UINT64           *pHostContext,  
    [out] IStream          **ppStmAssemblyImage,  
    [out] IStream          **ppStmPDB  
);  

Parametri

pBindInfo
[in] Puntatore a un'istanza di AssemblyBindInfo usata dall'host per determinare determinate caratteristiche di associazione, inclusa la presenza o l'assenza di criteri di controllo delle versioni e l'assembly da associare.

pAssemblyId
[out] Puntatore a un identificatore univoco per l'assembly richiesto per questo IStreamoggetto .

pHostContext
[out] Puntatore ai dati specifici dell'host usati per determinare l'evidenza dell'assembly richiesto senza la necessità di una chiamata di richiamo della piattaforma. pHostContext corrisponde alla HostContext proprietà della classe gestita Assembly .

ppStmAssemblyImage
[out] Puntatore all'indirizzo di un IStream oggetto contenente l'immagine eseguibile portabile (PE) da caricare o null se l'assembly non è stato trovato.

ppStmPDB
[out] Puntatore all'indirizzo di un IStream oggetto contenente le informazioni di debug del programma (PDB) o Null se il file pdb non è stato trovato.

Valore restituito

HRESULT Descrizione
S_OK ProvideAssembly restituito correttamente.
HOST_E_CLRNOTAVAILABLE 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 mentre un thread bloccato o fibra era in attesa su di esso.
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.
E_NOT_SUFFICIENT_BUFFER Le dimensioni del buffer specificate da pAssemblyId non sono sufficienti per contenere l'identificatore che l'host vuole restituire.

Commenti

Il valore di identità restituito per pAssemblyId 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. Controlla ogni valore rispetto ai valori per pAssemblyId restituiti da altre chiamate a ProvideAssembly. Se l'host restituisce lo stesso pAssemblyId valore per un altro IStream, CLR verifica se il contenuto di tale flusso è già stato mappato. In tal caso, il runtime carica la copia esistente dell'immagine anziché eseguire il mapping di una nuova.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: Incluso come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile da 2.0

Vedi anche