Função GetProcessWorkingSetSize (memoryapi.h)

Recupera os tamanhos mínimo e máximo do conjunto de trabalho do processo especificado.

Sintaxe

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

Parâmetros

[in] hProcess

Um identificador para o processo cujos tamanhos de conjunto de trabalho serão obtidos. O identificador deve ter o acesso PROCESS_QUERY_INFORMATION ou PROCESS_QUERY_LIMITED_INFORMATION direito. Para obter mais informações, consulte Direitos de Acesso e Segurança do Processo.

Windows Server 2003 e Windows XP: O identificador deve ter o acesso de PROCESS_QUERY_INFORMATION correto.

[out] lpMinimumWorkingSetSize

Um ponteiro para uma variável que recebe o tamanho mínimo do conjunto de trabalho do processo especificado, em bytes. O gerenciador de memória virtual tenta manter pelo menos essa quantidade de memória residente no processo sempre que o processo estiver ativo.

[out] lpMaximumWorkingSetSize

Um ponteiro para uma variável que recebe o tamanho máximo do conjunto de trabalho do processo especificado, em bytes. O gerenciador de memória virtual tenta manter não mais do que tanta memória residente no processo sempre que o processo estiver ativo quando a memória estiver em falta.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

O "conjunto de trabalho" de um processo é o conjunto de páginas de memória atualmente visível para o processo na memória RAM física. Essas páginas são residentes e estão disponíveis para um aplicativo usar sem disparar uma falha de página. Os tamanhos mínimo e máximo do conjunto de trabalho afetam o comportamento de paginação da memória virtual de um processo.

Exemplos

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

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho memoryapi.h
Biblioteca onecore.lib
DLL Kernel32.dll

Confira também

Conjunto de Trabalho do Processo

Processos

Função SetProcessWorkingSetSize

Função SetProcessWorkingSetSizeEx