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 |