Freigeben über


GetProcessWorkingSetSize-Funktion (memoryapi.h)

Ruft die minimalen und maximalen Arbeitssatzgrößen des angegebenen Prozesses ab.

Syntax

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

Parameter

[in] hProcess

Ein Handle für den Prozess, dessen Arbeitssatzgrößen abgerufen werden. Das Handle muss über das PROCESS_QUERY_INFORMATION - oder PROCESS_QUERY_LIMITED_INFORMATION-Zugriffsrecht verfügen. Weitere Informationen finden Sie unter Prozesssicherheit und Zugriffsrechte.

Windows Server 2003 und Windows XP: Das Handle muss über das zugriffsrecht PROCESS_QUERY_INFORMATION verfügen.

[out] lpMinimumWorkingSetSize

Ein Zeiger auf eine Variable, die die minimale Arbeitssatzgröße des angegebenen Prozesses in Bytes empfängt. Der Manager des virtuellen Arbeitsspeichers versucht, mindestens so viel Arbeitsspeicher im Prozess zu behalten, wenn der Prozess aktiv ist.

[out] lpMaximumWorkingSetSize

Ein Zeiger auf eine Variable, die die maximale Arbeitssatzgröße des angegebenen Prozesses in Bytes empfängt. Der Manager des virtuellen Arbeitsspeichers versucht, nicht mehr als so viel Arbeitsspeicher im Prozess zu speichern, wenn der Prozess aktiv ist, wenn Arbeitsspeicher knapp ist.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Der "Arbeitssatz" eines Prozesses ist der Satz von Speicherseiten, die derzeit für den Prozess im physischen RAM-Arbeitsspeicher sichtbar sind. Diese Seiten sind resident und können von einer Anwendung verwendet werden, ohne dass ein Seitenfehler ausgelöst wird. Die minimale Größe und die maximale Größe von Arbeitssätzen wirken sich auf das Verhalten beim Auslagern des virtuellen Arbeitsspeichers für einen Prozess aus.

Beispiele

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile memoryapi.h
Bibliothek onecore.lib
DLL Kernel32.dll

Siehe auch

Prozess – Arbeitssatz

Prozesse

SetProcessWorkingSetSize-Funktion

SetProcessWorkingSetSizeEx-Funktion