From 9859f23c211206ad29dc283e4c2bf1ad62b50bd4 Mon Sep 17 00:00:00 2001 From: Emanuele Aliberti Date: Sun, 22 Jul 2001 19:55:21 +0000 Subject: [PATCH] Skeleton for KERNEL32.GlobalMemoryStatus svn path=/trunk/; revision=2086 --- reactos/lib/kernel32/mem/global.c | 36 +++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/reactos/lib/kernel32/mem/global.c b/reactos/lib/kernel32/mem/global.c index 72cad0dd882..ffe8780a091 100644 --- a/reactos/lib/kernel32/mem/global.c +++ b/reactos/lib/kernel32/mem/global.c @@ -1,4 +1,4 @@ -/* $Id: global.c,v 1.6 2001/04/05 01:54:16 ekohl Exp $ +/* $Id: global.c,v 1.7 2001/07/22 19:55:21 ea Exp $ * * Win32 Global/Local heap functions (GlobalXXX, LocalXXX). * These functions included in Win32 for compatibility with 16 bit Windows @@ -218,7 +218,39 @@ GlobalLock(HGLOBAL hMem) VOID STDCALL GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer) { - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + NTSTATUS Status; + SYSTEM_PERFORMANCE_INFO Spi; + QUOTA_LIMITS Ql; + VM_COUNTERS Vmc; + PIMAGE_NT_HEADERS ImageNtHeader; + + RtlZeroMemory (lpBuffer, sizeof (MEMORYSTATUS)); + lpBuffer->dwLength = sizeof (MEMORYSTATUS); + Status = NtQuerySystemInformation ( + SystemPerformanceInformation, + & Spi, + sizeof Spi, + NULL + ); + /* FIXME: perform computations and fill lpBuffer fields */ + Status = NtQueryInformationProcess ( + GetCurrentProcess(), + ProcessQuotaLimits, + & Ql, + sizeof Ql, + NULL + ); + /* FIXME: perform computations and fill lpBuffer fields */ + Status = NtQueryInformationProcess ( + GetCurrentProcess(), + ProcessVmCounters, + & Vmc, + sizeof Vmc, + NULL + ); + /* FIXME: perform computations and fill lpBuffer fields */ + ImageNtHeader = RtlImageNtHeader ((PVOID)NtCurrentPeb()->ImageBaseAddress); + /* FIXME: perform computations and fill lpBuffer fields */ }