Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt einen Mechanismus zum Aufzählen der CLRs in einem Prozess bereit.
Syntax
HRESULT EnumerateCLRs (
[in] DWORD debuggeePID,
[out] HANDLE** ppHandleArrayOut,
[out] LPWSTR** ppStringArrayOut,
[out] DWORD* pdwArrayLengthOut
);
Die Parameter
debuggeePID
[in] Prozessbezeichner des Prozesses, aus dem geladene CLRs aufgezählt werden.
ppHandleArrayOut
[out] Zeigen Sie auf ein Array, das Ereignishandles enthält, die zum Fortsetzen eines CLR-Starts verwendet werden. Jedes Handle im Array ist nicht garantiert gültig. Wenn gültig, ist das Handle als Fortsetzungsstartereignis für die entsprechende Laufzeit im selben Index von ppStringArrayOut.
ppStringArrayOut
[out] Zeigen Sie auf ein Array von Zeichenfolgen, die vollständige Pfade zu clRs angeben, die im Prozess geladen wurden.
pdwArrayLengthOut
[out] Zeiger auf ein DWORD, das die Länge der gleichen Größe ppHandleArrayOut enthält und pdwArrayLengthOut.
Rückgabewert
S_OK
Die Anzahl der CLRs im Prozess wurde erfolgreich ermittelt, und die entsprechenden Handle- und Pfadarrays wurden ordnungsgemäß ausgefüllt.
E_INVALIDARG
Entweder ppHandleArrayOut oder ppStringArrayOut ist NULL oder pdwArrayLengthOut null.
E_OUTOFMEMORY
Die Funktion kann nicht genügend Arbeitsspeicher für die Handle- und Pfadarrays zuordnen.
E_FAIL (oder andere E_ Rückgabecodes)
Geladene CLRs können nicht aufgelistet werden.
Bemerkungen
Bei einem Zielprozess, der durch debuggeePIDidentifiziert wird, gibt die Funktion ein Array von Pfaden, an CLRs zurück, ppStringArrayOutdie im Prozess geladen wurden; ein Array von Ereignishandles, ppHandleArrayOutdie ein Fortsetzungsstartereignis für die CLR im selben Index enthalten kann; und die Größe der Arrays, pdwArrayLengthOutdie die Anzahl der geladenen CLRs angibt.
Auf dem Windows-Betriebssystem debuggeePID wird einem Betriebssystemprozessbezeichner zugeordnet.
Der Speicher für ppHandleArrayOut und ppStringArrayOut wird von dieser Funktion zugewiesen. Um den zugewiesenen Arbeitsspeicher freizugeben, müssen Sie CloseCLREnumeration Function aufrufen.
Diese Funktion kann mit beiden Arrayparametern aufgerufen werden, die auf NULL festgelegt sind, um die Anzahl der CLRs im Zielprozess zurückzugeben. Aus dieser Anzahl kann ein Aufrufer die Größe des Puffers ableiten, der erstellt wird: (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH).
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