Función GetProcessWorkingSetSize (memoryapi.h)
Recupera los tamaños mínimos y máximos del conjunto de trabajo del proceso especificado.
Sintaxis
BOOL GetProcessWorkingSetSize(
[in] HANDLE hProcess,
[out] PSIZE_T lpMinimumWorkingSetSize,
[out] PSIZE_T lpMaximumWorkingSetSize
);
Parámetros
[in] hProcess
Identificador del proceso cuyo tamaño del conjunto de trabajo se obtendrá. El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION o PROCESS_QUERY_LIMITED_INFORMATION . Para obtener más información, consulte Derechos de acceso y seguridad de procesos.
Windows Server 2003 y Windows XP: El identificador debe tener el derecho de acceso PROCESS_QUERY_INFORMATION.
[out] lpMinimumWorkingSetSize
Puntero a una variable que recibe el tamaño mínimo del conjunto de trabajo del proceso especificado, en bytes. El administrador de memoria virtual intenta mantener al menos esta cantidad de memoria residente en el proceso cada vez que el proceso está activo.
[out] lpMaximumWorkingSetSize
Puntero a una variable que recibe el tamaño máximo del conjunto de trabajo del proceso especificado, en bytes. El administrador de memoria virtual intenta mantener esta cantidad de memoria residente en el proceso cada vez que el proceso está activo cuando la memoria está en breve suministro.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
El "conjunto de trabajo" de un proceso es el conjunto de páginas de memoria actualmente visibles para el proceso en memoria RAM física. Estas páginas son residentes y están disponibles para que una aplicación las use sin desencadenar un error de página. Los tamaños mínimos y máximos del conjunto de trabajo afectan al comportamiento de paginación de memoria virtual de un proceso.
Ejemplos
#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 compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | memoryapi.h |
Library | onecore.lib |
Archivo DLL | Kernel32.dll |
Vea también
Conjunto de trabajo del proceso