Condividi tramite


Metodo ICLRDebuggingLibraryProvider::ProvideLibrary

Ottiene un'interfaccia di callback del provider di librerie che consente alle librerie di debug specifiche della versione di Common Language Runtime (CLR) di trovarsi e caricare su richiesta.

Sintassi

HRESULT ProvideLibrary(
     [in] const WCHAR* pwszFileName,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] HMODULE* hModule);

Parametri

pwszFilename
[in] Nome del modulo richiesto.

dwTimestamp
[in] Timestamp di data archiviato nell'intestazione del file COFF dei file PE.

dwSizeOfImage
[in] Campo SizeOfImage archiviato nell'intestazione facoltativa del file COFF dei file PE.

hModule
[out] Handle del modulo richiesto.

Valore restituito

Questo metodo restituisce gli specifici HRESULT seguenti, nonché gli errori di HRESULT che indicano la mancata riuscita del metodo.

HRESULT Descrizione
S_OK Metodo completato correttamente.

Eccezioni

Osservazioni

ProvideLibrary consente al debugger di fornire moduli necessari per il debug di file CLR specifici, ad esempio mscordbi.dll e mscordacwks.dll. Gli handle del modulo devono rimanere validi finché una chiamata al metodo ICLRDebugging::CanUnloadNow indica che possono essere liberati, a quel punto è responsabilità del chiamante liberare gli handle.

Il debugger può usare qualsiasi mezzo disponibile per individuare o procurare il modulo di debug.

Importante

Questa funzionalità consente al chiamante API di fornire moduli che contengono file eseguibili e possibilmente dannosi. Come precauzione di sicurezza, il chiamante non deve usare ProvideLibrary per distribuire alcun codice che non è disposto a eseguire se stesso.

Se viene rilevato un problema di sicurezza grave in una libreria già rilasciata, ad esempio mscordbi.dll o mscordacwks.dll, lo shim può essere sottoposto a patch per riconoscere le versioni non corrette dei file. Lo shim può quindi inviare richieste per le versioni patch dei file e rifiutare le versioni non valide se vengono fornite in risposta a qualsiasi richiesta. Ciò può verificarsi solo se l'utente ha eseguito la patch a una nuova versione dello shim. Le versioni non aggiornate rimarranno vulnerabili.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorDebug.idl, CorDebug.h

Libreria: CorGuids.lib

Versioni di .NET Framework: Disponibile da 4

Vedi anche