Dela via


Uppräknings-CLRs-funktion

Tillhandahåller en mekanism för att räkna upp CLR i en process.

Syntax

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

Parametrar

debuggeePID
[i] Processidentifierare för den process som inlästa CLR:er räknas upp från.

ppHandleArrayOut
[ut] Pekare till en matris som innehåller händelsehandtag som används för att fortsätta en CLR-start. Varje referens i matrisen är inte garanterad att vara giltig. Om det är giltigt ska handtaget användas som fortsätt-start-händelsen för motsvarande körning som finns i samma index för ppStringArrayOut.

ppStringArrayOut
[ut] Pekare till en matris med strängar som anger fullständiga sökvägar till CLR:er som lästs in i processen.

pdwArrayLengthOut
[ut] Pekare till ett DWORD som innehåller längden på lika stora ppHandleArrayOut och pdwArrayLengthOut.

Returvärde

S_OK
Antalet CLR:er i processen fastställdes och motsvarande referens- och sökvägsmatriser fylldes i korrekt.

E_INVALIDARG
Antingen ppHandleArrayOut eller ppStringArrayOut är null eller pdwArrayLengthOut är null.

E_OUTOFMEMORY
Funktionen kan inte allokera tillräckligt med minne för referens- och sökvägsmatriserna.

E_FAIL (eller andra E_ returkoder)
Det går inte att räkna upp inlästa CLR:er.

Kommentarer

För en målprocess som identifieras av debuggeePIDreturnerar funktionen en matris med sökvägar, ppStringArrayOut, till CLR:er som lästs in i processen, en matris med händelsehandtag, ppHandleArrayOut, som kan innehålla en fortsätt-start-händelse för CLR vid samma index och storleken på matriserna, pdwArrayLengthOut, som anger antalet CLR som läses in.

I Windows-operativsystemet debuggeePID mappar du till en os-processidentifierare.

Minnet för ppHandleArrayOut och ppStringArrayOut allokeras av den här funktionen. Om du vill frigöra det allokerade minnet måste du anropa Funktionen CloseCLREnumeration.

Den här funktionen kan anropas med båda matrisparametrarna inställda på null för att returnera antalet CLR i målprocessen. Från det här antalet kan en anropare härleda storleken på bufferten som ska skapas: (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH).

Behov

Plattformar: Se operativsystem som stöds av .NET.

Rubrik: dbgshim.h

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

.NET-versioner: Finns sedan .NET Core 2.1