Teilen über


ICLRDebuggingLibraryProvider3::P rovideUnixLibrary-Methode

Ermöglicht dem Debugger, einen Pfad zu einer versionsspezifischen Common Language Runtime (CLR)-Debugbibliothek unter macOS und Linux bereitzustellen.

Syntax

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);

Parameter

pwszFilename
[in] Der Name des Moduls, das angefordert wird.

pwszRuntimeModule
[in] Der Runtime- oder Einzeldateimodulpfad.

indexType
[in] Der Typ der bereitgestellten Indexinformationen (pBuildId). Siehe die Enumeration LIBRARY_PROVIDER_INDEX_TYPE.

pbBuildId
[in] Die Build-ID des Linux- oder macOS-Moduls. Kann null sein, wenn beim Abrufen der Build-ID ein Fehler aufgetreten ist.

iBuildIdSize
[in] Die Anzahl der Bytes im pbBuildId-Array. Dies kann 0 sein, wenn beim Abrufen der Build-ID ein Fehler aufgetreten ist.

ppResolvedModulePath
[out] Dies ist ein mit NULL beendeter Pfad zur Modul-DLL. Unter Unix ist dies mit CoTaskMemAlloc zuzuordnen. Unter Unix ist dies mit malloc zuzuordnen. Es bleibt von Fehlern unberührt. Siehe Sicherheitshinweis weiter unten!

Rückgabewert

Diese Methode gibt das folgende spezifische HRESULT sowie HRESULT-Fehler zurück, die Methodenfehler anzeigen.

HRESULT BESCHREIBUNG
S_OK Die Methode wurde erfolgreich abgeschlossen.

Hinweise

ProvideUnixLibrary ermöglicht es dem Debugger, Module bereitzustellen, die zum Debuggen bestimmter CLR-Dateien wie mscordbi.dll und mscordacwks.dll erforderlich sind.

Der Debugger kann alle verfügbaren Mittel verwenden, um das Debugmodul zu suchen oder zu beschaffen.

Wichtig

Mit diesem Feature kann der API-Aufrufer Module bereitstellen, die ausführbaren und möglicherweise schädlichen Code enthalten. Als Sicherheitsvorkehrung sollte der Aufrufer nicht ProvideUnixLibrary verwenden, um Code zu verteilen, der nicht bereit ist, sich selbst auszuführen.

Wenn ein schwerwiegendes Sicherheitsproblem in einer bereits veröffentlichten Bibliothek entdeckt wird, z. B. mscordbi.dll oder mscordacwks.dll, kann der Shim gepatcht werden, um die ungültigen Versionen der Dateien zu erkennen. Der Shim kann dann Anforderungen für die gepatchten Versionen der Dateien ausstellen und die ungültigen Versionen ablehnen, wenn sie als Antwort auf eine Anforderung bereitgestellt werden. Dies kann nur auftreten, wenn der Benutzer auf eine neue Version des Shim gepatcht hat. Nicht gepatchte Versionen bleiben anfällig.

Anforderungen

Plattformen: Siehe Von .NET unterstützte Betriebssysteme.

Header: dbgshim.h

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

.NET-Versionen: verfügbar seit .NET Core 2.1