Partager via


Fonction EnumerateCLRs

Fournit un mécanisme pour é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 du processus à partir duquel les CLR chargés sont énumérés.

ppHandleArrayOut
[out] Pointeur vers un tableau contenant les handles d'événements utilisés pour poursuivre un démarrage du CLR. Chaque handle du tableau n'est pas garanti comme valide. Si valide, le handle doit être utilisé comme l'événement continue-startup du 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 une valeur DWORD qui contient la longueur de ppHandleArrayOut et pdwArrayLengthOut de taille égale.

Valeur retournée

S_OK
Le nombre de CLR dans le processus a été correctement déterminé, et les tableaux de handles et de chemin d’accès correspondants ont été correctement remplis.

E_INVALIDARG
ppHandleArrayOut a la valeur null, ou ppStringArrayOut ou pdwArrayLengthOut a la valeur null.

E_OUTOFMEMORY
La fonction ne peut pas allouer suffisamment de mémoire pour les tableaux de handles et de chemins d'accès.

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

Notes

Pour un processus cible qui est identifié par debuggeePID, la fonction retourne un tableau de chemins d’accès, ppStringArrayOut, vers les CLR chargés dans le processus ; un tableau de handles d’événement, ppHandleArrayOut, qui peut contenir un événement continue-startup pour le CLR au même index ; et la taille des tableaux, pdwArrayLengthOut, qui spécifie le nombre de CLR chargés.

Sur le système d'exploitation Windows, debuggeePID est mappé à un identificateur de processus du système d'exploitation.

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

Cette fonction peut être appelée en affectant la valeur null aux deux paramètres de tableau afin de retourner le nombre de CLR dans le processus cible. Avec 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

Plateformes : Consultez 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 : Disponibles depuis .NET Core 2.1