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

Die Parameter

pwszFilename
[in] Der Name des angeforderten Moduls.

pwszRuntimeModule
[in] Der Laufzeit- oder Einzeldateimodulpfad.

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

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 null-beendeter Pfad zur Modul-DLL. Auf Unix sollte es mit CoTaskMemAlloc zugeordnet werden. Auf Unix sollte es mit Malloc zugeordnet werden. Fehler bleibt unberührt. Siehe Sicherheitshinweis weiter unten!

Rückgabewert

Diese Methode gibt die folgenden spezifischen HRESULT- und HRESULT-Fehler zurück, die auf Methodenfehler hinweisen.

HRESULT BESCHREIBUNG
S_OK Die Methode wurde erfolgreich abgeschlossen.

Bemerkungen

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

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

Von Bedeutung

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

Wenn ein schwerwiegendes Sicherheitsproblem in einer bereits veröffentlichten Bibliothek wie mscordbi.dll oder mscordacwks.dllentdeckt wird, kann der Shim gepatcht werden, um die fehlerhaften 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 Reaktion 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 .NET unterstützte Betriebssysteme.

Header: dbgshim.h

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

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