Share via


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

Procesos

Función SetProcessWorkingSetSize

Función SetProcessWorkingSetSizeEx