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