Share via


GetProcessWorkingSetSize, fonction (memoryapi.h)

Récupère les tailles minimales et maximales du groupe de travail du processus spécifié.

Syntaxe

BOOL GetProcessWorkingSetSize(
  [in]  HANDLE  hProcess,
  [out] PSIZE_T lpMinimumWorkingSetSize,
  [out] PSIZE_T lpMaximumWorkingSetSize
);

Paramètres

[in] hProcess

Handle du processus dont les tailles de jeu de travail seront obtenues. Le handle doit avoir le droit d’accès PROCESS_QUERY_INFORMATION ou PROCESS_QUERY_LIMITED_INFORMATION . Pour plus d’informations, consultez Droits d’accès et de sécurité des processus.

Windows Server 2003 et Windows XP : Le handle doit avoir le droit d’accès PROCESS_QUERY_INFORMATION .

[out] lpMinimumWorkingSetSize

Pointeur vers une variable qui reçoit la taille minimale du jeu de travail du processus spécifié, en octets. Le gestionnaire de mémoire virtuelle tente de conserver au moins autant de mémoire résidente dans le processus chaque fois que le processus est actif.

[out] lpMaximumWorkingSetSize

Pointeur vers une variable qui reçoit la taille maximale du jeu de travail du processus spécifié, en octets. Le gestionnaire de mémoire virtuelle tente de ne conserver que cette quantité de mémoire résidant dans le processus chaque fois que le processus est actif lorsque la mémoire est insuffisante.

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.

Remarques

Le « jeu de travail » d’un processus est l’ensemble de pages mémoire actuellement visibles par le processus dans la mémoire RAM physique. Ces pages résident et peuvent être utilisées par une application sans déclencher de défaillance de page. Les tailles de plage de travail minimale et maximale affectent le comportement de pagination de la mémoire virtuelle d’un processus.

Exemples

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    SIZE_T  dwMin, dwMax;
    HANDLE hProcess;

    if (argc != 2)
    {
        printf("This program requires a process ID as an argument.\n");
        return 1;
    }

    // Retrieve a handle to the process.

    hProcess = OpenProcess( PROCESS_QUERY_INFORMATION, 
                            FALSE, atoi(argv[1]));
     if (!hProcess)
    {
        printf( "OpenProcess failed (%d)\n", GetLastError() );
        return 1;
    }

    // Retrieve the working set size of the process.

    if (!GetProcessWorkingSetSize(hProcess, &dwMin, &dwMax))
    {
        printf("GetProcessWorkingSetSize failed (%d)\n",
            GetLastError());
        return 1;
    }

    printf("Process ID: %d\n", atoi(argv[1]));
    printf("Minimum working set: %lu KB\n", dwMin/1024);
    printf("Maximum working set: %lu KB\n", dwMax/1024);

    CloseHandle(hProcess);

    return 0;
}

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête memoryapi.h
Bibliothèque onecore.lib
DLL Kernel32.dll

Voir aussi

Ensemble de travail de processus

Processus

SetProcessWorkingSetSize, fonction

Fonction SetProcessWorkingSetSizeEx