Partager via


Fonction EnumerateCLRs

Fournit un mécanisme permettant d’énumérer les CLR dans un processus.

Syntaxe

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

Paramètres

debuggeePID
[in] Identificateur de processus du processus à partir duquel les CLR chargés seront énumérés.

ppHandleArrayOut
[out] Pointeur vers un tableau contenant des handles d’événements utilisés pour poursuivre un démarrage CLR. Chaque handle du tableau n’est pas garanti comme valide. S’il est valide, le handle doit être utilisé comme événement de démarrage continu pour le runtime correspondant situé dans le même index de ppStringArrayOut.

ppStringArrayOut
[out] Pointeur vers un tableau de chaînes qui spécifient des chemins d’accès complets aux CLR chargés dans le processus.

pdwArrayLengthOut
[out] Pointeur vers un DWORD qui contient la longueur de la taille ppHandleArrayOut égale et pdwArrayLengthOut.

Valeur retournée

S_OK
Le nombre de CLR dans le processus a été correctement déterminé, et les tableaux de handle et de chemin correspondants ont été correctement remplis.

E_INVALIDARG
ppHandleArrayOut Soit ppStringArrayOut est null, soit pdwArrayLengthOut null.

E_OUTOFMEMORY
La fonction n’est pas en mesure d’allouer suffisamment de mémoire pour les tableaux de handle et de chemin d’accès.

E_FAIL (ou d’autres E_ codes de retour)
Impossible d’énumérer les CLR chargés.

Remarques

Pour un processus cible identifié par debuggeePID, la fonction retourne un tableau de chemins, ppStringArrayOutaux CLR chargés dans le processus ; tableau de handles d’événements, ppHandleArrayOutqui peut contenir un événement de démarrage continu pour le CLR au même index ; et la taille des tableaux, pdwArrayLengthOutqui spécifie le nombre de CLR chargés.

Sur le système d’exploitation Windows, debuggeePID mappe à un identificateur de processus de système d’exploitation.

Mémoire pour ppHandleArrayOut laquelle cette ppStringArrayOut fonction est allouée. Pour libérer la mémoire allouée, vous devez appeler CloseCLREnumeration, fonction.

Cette fonction peut être appelée avec les deux paramètres de tableau définis sur Null afin de retourner le nombre de CLR dans le processus cible. À partir de ce nombre, un appelant peut déduire la taille de la mémoire tampon qui sera créée : (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH).

Spécifications

Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.

En-tête : dbgshim.h

Bibliothèque : dbgshim.dll, libdbgshim.so, libdbgshim.dylib

Versions de .NET : Disponible depuis .NET Core 2.1