Partager via


Fonction EnumProcesses (psapi.h)

Récupère l’identificateur de processus pour chaque objet de processus dans le système.

Syntaxe

BOOL EnumProcesses(
  [out] DWORD   *lpidProcess,
  [in]  DWORD   cb,
  [out] LPDWORD lpcbNeeded
);

Paramètres

[out] lpidProcess

Pointeur vers un tableau qui reçoit la liste des identificateurs de processus.

[in] cb

Taille du tableau pProcessIds , en octets.

[out] lpcbNeeded

Nombre d’octets retournés dans le tableau pProcessIds .

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Notes

Il est judicieux d’utiliser un grand tableau, car il est difficile de prédire le nombre de processus au moment où vous appelez EnumProcesses.

Pour déterminer le nombre de processus énumérés, divisez la valeur lpcbNeeded par sizeof(DWORD). Aucune indication n’est donnée lorsque la mémoire tampon est trop petite pour stocker tous les identificateurs de processus. Par conséquent, si lpcbNeededed est égal à cb, envisagez de réessayer l’appel avec un tableau plus grand.

Pour obtenir des handles de processus pour les processus dont vous venez d’obtenir les identificateurs, appelez la fonction OpenProcess .

À compter de Windows 7 et Windows Server 2008 R2, Psapi.h établit les numéros de version pour les fonctions PSAPI. Le numéro de version PSAPI affecte le nom utilisé pour appeler la fonction et la bibliothèque qu’un programme doit charger.

Si PSAPI_VERSION est égal ou supérieur à 2, cette fonction est définie comme K32EnumProcesses dans Psapi.h et exportée dans Kernel32.lib et Kernel32.dll. Si PSAPI_VERSION a la valeur 1, cette fonction est définie comme EnumProcesses dans Psapi.h et exportée dans Psapi.lib et Psapi.dll en tant que wrapper qui appelle K32EnumProcesses.

Les programmes qui doivent s’exécuter sur des versions antérieures de Windows, de Windows 7 et versions ultérieures doivent toujours appeler cette fonction EnumProcesses. Pour garantir la résolution correcte des symboles, ajoutez Psapi.lib à la macro TARGETLIBS et compilez le programme avec –DPSAPI_VERSION=1. Pour utiliser la liaison dynamique au moment de l’exécution, chargez Psapi.dll.

Exemples

Pour obtenir un exemple, consultez Énumération de tous les processus ou Énumération de tous les modules pour un processus.

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête psapi.h
Bibliothèque Kernel32.lib sur Windows 7 et Windows Server 2008 R2 ; Psapi.lib (si PSAPI_VERSION=1) sur Windows 7 et Windows Server 2008 R2 ; Psapi.lib sur Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP
DLL Kernel32.dll sur Windows 7 et Windows Server 2008 R2 ; Psapi.dll (si PSAPI_VERSION=1) sur Windows 7 et Windows Server 2008 R2 ; Psapi.dll sur Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP

Voir aussi

CreateToolhelp32Snapshot

OpenProcess

Fonctions PSAPI

Informations sur le processus