Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Consente al debugger di fornire un percorso a una libreria di debug CLR (Common Language Runtime) specifica della versione in macOS e Linux.
Sintassi
HRESULT ProvideUnixLibrary (
[in] const WCHAR* pwszFileName,
[in] const WCHAR* pwszRuntimeModule,
[in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
[in] BYTE* pbBuildId,
[in] int iBuildIdSize,
[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 sull'indice (pBuildId) specificato. Vedere LIBRARY_PROVIDER_INDEX_TYPE enumerazione.
pbBuildId
[in] ID di compilazione del modulo Linux o macOS. Può essere Null se si è verificato un errore durante il recupero dell'ID di compilazione.
iBuildIdSize
[in] Numero di byte nella matrice pbBuildId. Può essere 0 se si è verificato un errore durante il recupero dell'ID di compilazione.
ppResolvedModulePath
[out] Si tratta di un percorso con terminazione Null della DLL del modulo. In Unix deve essere allocata con CoTaskMemAlloc. In Unix deve essere allocata con malloc. L'errore lascia invariato. Vedere la nota sulla sicurezza di seguito.
Valore restituito
Questo metodo restituisce gli errori HRESULT specifici seguenti e HRESULT che indicano l'errore del metodo.
| HRESULT | Descrizione |
|---|---|
S_OK |
Il metodo è stato completato correttamente. |
Osservazioni:
ProvideUnixLibrary 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 eseguibili ed eventualmente codice dannoso. Come precauzione di sicurezza, il chiamante non deve usare ProvideUnixLibrary per distribuire 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 patchato 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 patch a una nuova versione dello 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 di .NET: Disponibile a partire da .NET Core 2.1