[2/3] kernel32: GlobalMemoryStatusEx: return the size of physical memory + swapsize in ullTotalPageFile/ullAvailPageFile

Fabian Bieler der.fabe at gmx.net
Wed Mar 14 18:41:00 CDT 2007


Window XP reports the amount of physical memory + swapsize in 
ullTotalPageFile/ullAvailPageFile
Windows 98 reports only the amount of swap.

This patch implements the behavior of XP.

This patch also removes a workaround for Project2k which is no longer needed.
-------------- next part --------------
From 3f3738637fea71373b9aa381d97f875fc7706f81 Mon Sep 17 00:00:00 2001
From: Fabian Bieler <der.fabe at gmx.net>
Date: Thu, 15 Mar 2007 00:21:25 +0100
Subject: [PATCH] kernel32: GlobalMemoryStatusEx: return the size of physical memory + swapsize in ullTotalPageFile/ullAvailPageFile

---
 dlls/kernel32/heap.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c
index d311d1f..996a7e4 100644
--- a/dlls/kernel32/heap.c
+++ b/dlls/kernel32/heap.c
@@ -1304,11 +1304,12 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
                                   / (lpmemex->ullTotalPhys / 100);
     }
 
-    /* Project2k refuses to start if it sees less than 1Mb of free swap */
-    if (lpmemex->ullTotalPageFile < lpmemex->ullTotalPhys)
-        lpmemex->ullTotalPageFile = lpmemex->ullTotalPhys;
-    if (lpmemex->ullAvailPageFile < lpmemex->ullAvailPhys)
-        lpmemex->ullAvailPageFile = lpmemex->ullAvailPhys;
+    /* Win98 returns only the swapsize in ullTotalPageFile/ullAvailPageFile,
+       WinXP returns the size of physical memory + swapsize;
+       mimic the behavior of XP:
+    */
+    lpmemex->ullTotalPageFile += lpmemex->ullTotalPhys;
+    lpmemex->ullAvailPageFile += lpmemex->ullAvailPhys;
 
     /* FIXME: should do something for other systems */
     GetSystemInfo(&si);
-- 
1.4.4.1



More information about the wine-patches mailing list