Condividi tramite


Funzione GetProcessWorkingSetSize (memoryapi.h)

Recupera le dimensioni minime e massime del set di lavoro del processo specificato.

Sintassi

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

Parametri

[in] hProcess

Handle per il processo le cui dimensioni del set di lavoro verranno ottenute. L'handle deve avere il diritto di accesso PROCESS_QUERY_INFORMATION o PROCESS_QUERY_LIMITED_INFORMATION . Per altre informazioni, vedere Elaborare diritti di sicurezza e accesso.

Windows Server 2003 e Windows XP: L'handle deve avere il diritto di accesso PROCESS_QUERY_INFORMATION .

[out] lpMinimumWorkingSetSize

Puntatore a una variabile che riceve le dimensioni minime del set di lavoro minimo del processo specificato, in byte. Gestione memoria virtuale tenta di mantenere almeno questa quantità di memoria residente nel processo ogni volta che il processo è attivo.

[out] lpMaximumWorkingSetSize

Puntatore a una variabile che riceve le dimensioni massime del set di lavoro massimo del processo specificato, in byte. La gestione memoria virtuale tenta di mantenere non più di questa quantità di memoria residente nel processo ogni volta che il processo è attivo quando la memoria è in breve fornitura.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Il "set di lavoro" di un processo è il set di pagine di memoria attualmente visibili al processo nella memoria RAM fisica. Queste pagine sono residenti e disponibili per un'applicazione da usare senza attivare un errore di pagina. Le dimensioni minime e massime del set di lavoro influiscono sul comportamento di paging della memoria virtuale di un processo.

Esempio

#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;
}

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione memoryapi.h
Libreria onecore.lib
DLL Kernel32.dll

Vedere anche

Set di lavoro del processo

Processi

Funzione SetProcessWorkingSetSize

Funzione SetProcessWorkingSetSizeEx