Share via


Metodo ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary

Ottiene un'interfaccia di callback del provider di librerie che consente la posizione e il caricamento su richiesta di librerie di debug specifiche di CLR (Common Language Runtime).

Sintassi

HRESULT ProvideWindowsLibrary (
     [in] const WCHAR* pwszFileName,
     [in] const WCHAR* pwszRuntimeModule,
     [in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] LPWSTR* ppResolvedModulePath);

Parametri

pwszFilename
[in] Nome del modulo richiesto.

pwszRuntimeModule
[in] Percorso del runtime o del modulo a file singolo.

indexType
[in] Tipo di informazioni indice (dwTimestamp/dwSizeOfImage) fornite. Vedere enumerazione LIBRARY_PROVIDER_INDEX_TYPE.

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.

ppResolvedModulePath
[out] Si tratta di un percorso con terminazione Null per dll del modulo. In Windows deve essere allocato con CoTaskMemAlloc. In Unix deve essere allocato con malloc. L'errore lascia tutto invariato. Vedere di seguito la nota sulla sicurezza.

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.

Osservazioni:

ProvideWindowsLibrary consente al debugger di fornire moduli necessari per il debug di file CLR specifici, ad esempio mscordbi.dll e mscordacwks.dll.

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

Importante

Questa funzionalità consente al chiamante API di fornire moduli che contengono file eseguibili ed eventualmente codice dannoso. Come precauzione di sicurezza, il chiamante non deve usare ProvideWindowsLibrary per distribuire codice che non disponibile per l’esecuzione.

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 ad applicazione di patch per riconoscere le versioni non corrette dei file. Lo shim può quindi inviare richieste per le versioni con patch dei file e rifiutare le versioni non valide se vengono fornite in risposta a qualsiasi richiesta. Questo problema può verificarsi solo se l'utente ha eseguito applicazioni di patch a una nuova versione di shim. Le versioni senza patch rimarranno vulnerabili.

Requisiti

Piattaforme: vedere Sistemi operativi supportati da .NET.

Intestazione: dbgshim.h

Libreria: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

Versioni .NET: disponibili a partire da .NET Core 2.1