Freigeben über


EnumerateCLRs-Funktion für Silverlight

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] 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. 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] 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 null pdwArrayLengthOut oder null ist.

E_OUTOFMEMORY Die Funktion kann nicht genügend Arbeitsspeicher für die Handle- und Pfadarrays zuordnen.

E_FAIL (oder andere E_ Rückgabecodes) können geladene CLRs nicht aufzählen.

Hinweise

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: Informationen finden Sie unter Systemanforderungen.

Header: dbgshim.h

Library: dbgshim.dll

.NET Framework-Versionen: 3.5 SP1