Le champ WorkingSetSize donne la taille mémoire occupée par le processus.
Par contre il faut utiliser OpenProcess pour choper le handle du processus concerné.
Et attention car on ne peut pas prendre le handle d'un processus qui appartient à un autre utilisateur.
Merci pour vos réponses.
Bonjour,
Je suis un train de créer un petit programme qui doit collecter la taille mémoire utilisée par un processus précis.
J'arrive à récupérer la liste des processus démarrés avec l'api
BOOL EnumProcesses(
DWORD* lpidProcess,
DWORD cb,
DWORD* cbNeeded
);
ensuite en utilisant l'api
BOOL GetProcessMemoryInfo(
HANDLE Process,
PPROCESS_MEMORY_COUNTERS ppsmemCounters,
DWORD cb
);
qui me retourne une structure tel que
typedef struct _PROCESS_MEMORY_COUNTERS
{
DWORD cb;
DWORD PageFaultCount;
SIZE_T PeakWorkingSetSize;
SIZE_T WorkingSetSize;
SIZE_T QuotaPeakPagedPoolUsage;
SIZE_T QuotaPagedPoolUsage;
SIZE_T QuotaPeakNonPagedPoolUsage;
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS, *PPROCESS_MEMORY_COUNTERS;
qui devrait me permettre de trouver des informations concernant la mémoire allouée et/ou consommée par un processus défini.
Je ne sais pas quel champ utiliser pour me donner des infomations cohérentes, par rapport au Taskmanager.
Comment fait le task manager pour extraire les informations d'utilisation mémoire d'un processus ?
merci pour votre aide
Partager