Teilen über


EnumerateCLRs-Funktion

Stellt einen Mechanismus für das Auflisten der CLRs in einem Prozess bereit.

Syntax

HRESULT EnumerateCLRs (
    [in]  DWORD      debuggeePID,
    [out] HANDLE**   ppHandleArrayOut,
    [out] LPWSTR**   ppStringArrayOut,
    [out] DWORD*     pdwArrayLengthOut
);

Parameter

debuggeePID
[in] Die Prozess-ID des Prozesses aus dem geladene CLRs aufgezählt werden.

ppHandleArrayOut
[out] Ein Zeiger auf ein Array mit Ereignishandles, die zum Fortsetzen eines CLR-Starts verwendet werden. Die Gültigkeit der einzelnen Handle im Array ist nicht garantiert. Wenn das Handle gültig ist, wird es als Ereignis zur Startfortsetzung für die entsprechende Common Language Runtime im gleichen Index von ppStringArrayOut verwendet.

ppStringArrayOut
[out] Ein Zeiger auf ein Array von Zeichenfolgen, die vollständige Pfade zu CLRs angeben, die in den Prozess geladen werden.

pdwArrayLengthOut
[out] Ein Zeiger auf ein DWORD, das die Länge des gleichlangen ppHandleArrayOut und pdwArrayLengthOut enthält.

Rückgabewert

S_OK
Die Anzahl der CLRs im Prozess wurde erfolgreich ermittelt, und das entsprechende Handle und die Pfadarrays wurden ordnungsgemäß aufgefüllt.

E_INVALIDARG
Entweder ist ppHandleArrayOut oder ppStringArrayOut Null, oder pdwArrayLengthOut ist NULL.

E_OUTOFMEMORY
Die Funktion kann nicht genug Speicher für die Handle- und Pfadarrays reservieren.

E_FAIL (oder andere E_-Rückgabecodes)
Geladene CLRs können nicht aufgezählt werden.

Bemerkungen

Für einen Zielprozess, der durch debuggeePID identifiziert wird, gibt die Funktion ein Array von Pfaden, ppStringArrayOut, an im Prozess geladene CLRs, ein Array von Ereignishandles, ppHandleArrayOut, das möglicherweise ein Ereignis zur Startfortsetzung für die CLR in demselben Index enthält, und die Größe der Arrays zurück, pdwArrayLengthOut, die die Anzahl der geladenen CLRs angibt.

Unter dem Windows-Betriebssystem wird debuggeePID einem Betriebssystem-Prozessbezeichner zugeordnet.

Der Arbeitsspeicher für ppHandleArrayOut und ppStringArrayOut wird von dieser Funktion zugeordnet. Um den zugeordneten Arbeitsspeicher freizugeben, müssen Sie die CloseCLREnumeration-Funktion aufrufen.

Diese Funktion kann mit beiden auf null festgelegten Arrayparametern aufgerufen werden, 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 Von .NET unterstützte Betriebssysteme.

Header: dbgshim.h

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

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