GlobalMemoryStatusEx-Funktion (sysinfoapi.h)
Ruft Informationen zur aktuellen Systemauslastung sowohl des physischen als auch des virtuellen Speichers ab.
Syntax
BOOL GlobalMemoryStatusEx(
[in, out] LPMEMORYSTATUSEX lpBuffer
);
Parameter
[in, out] lpBuffer
Ein Zeiger auf eine MEMORYSTATUSEX-Struktur , die Informationen zur aktuellen Speicherverfügbarkeit empfängt.
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
Sie können die GlobalMemoryStatusEx-Funktion verwenden, um zu bestimmen, wie viel Arbeitsspeicher Ihre Anwendung zuordnen kann, ohne dass andere Anwendungen erheblich beeinträchtigt werden.
Die von der GlobalMemoryStatusEx-Funktion zurückgegebenen Informationen sind flüchtig. Es gibt keine Garantie, dass zwei sequenzielle Aufrufe dieser Funktion dieselben Informationen zurückgeben.
Der ullAvailPhys-Member der MEMORYSTATUSEX-Struktur bei lpBuffer enthält Arbeitsspeicher für alle NUMA-Knoten.
Beispiele
Der folgende Code zeigt eine einfache Verwendung der GlobalMemoryStatusEx-Funktion .
// Sample output:
// There is 51 percent of memory in use.
// There are 2029968 total KB of physical memory.
// There are 987388 free KB of physical memory.
// There are 3884620 total KB of paging file.
// There are 2799776 free KB of paging file.
// There are 2097024 total KB of virtual memory.
// There are 2084876 free KB of virtual memory.
// There are 0 free KB of extended memory.
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
// Use to convert bytes to KB
#define DIV 1024
// Specify the width of the field in which to print the numbers.
// The asterisk in the format specifier "%*I64d" takes an integer
// argument and uses it to pad and right justify the number.
#define WIDTH 7
void _tmain()
{
MEMORYSTATUSEX statex;
statex.dwLength = sizeof (statex);
GlobalMemoryStatusEx (&statex);
_tprintf (TEXT("There is %*ld percent of memory in use.\n"),
WIDTH, statex.dwMemoryLoad);
_tprintf (TEXT("There are %*I64d total KB of physical memory.\n"),
WIDTH, statex.ullTotalPhys/DIV);
_tprintf (TEXT("There are %*I64d free KB of physical memory.\n"),
WIDTH, statex.ullAvailPhys/DIV);
_tprintf (TEXT("There are %*I64d total KB of paging file.\n"),
WIDTH, statex.ullTotalPageFile/DIV);
_tprintf (TEXT("There are %*I64d free KB of paging file.\n"),
WIDTH, statex.ullAvailPageFile/DIV);
_tprintf (TEXT("There are %*I64d total KB of virtual memory.\n"),
WIDTH, statex.ullTotalVirtual/DIV);
_tprintf (TEXT("There are %*I64d free KB of virtual memory.\n"),
WIDTH, statex.ullAvailVirtual/DIV);
// Show the amount of extended memory available.
_tprintf (TEXT("There are %*I64d free KB of extended memory.\n"),
WIDTH, statex.ullAvailExtendedVirtual/DIV);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | sysinfoapi.h (windows.h einschließen) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |