Report swap file total/free sizes to be the same as physical memory.
Make sure that we cache all calculated values.
This commit is contained in:
parent
2fac564cc5
commit
e3181e3fcc
@ -1140,19 +1140,17 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* 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;
|
||||||
|
|
||||||
/* FIXME: should do something for other systems */
|
/* FIXME: should do something for other systems */
|
||||||
GetSystemInfo(&si);
|
GetSystemInfo(&si);
|
||||||
lpmemex->ullTotalVirtual = (char*)si.lpMaximumApplicationAddress-(char*)si.lpMinimumApplicationAddress;
|
lpmemex->ullTotalVirtual = (char*)si.lpMaximumApplicationAddress-(char*)si.lpMinimumApplicationAddress;
|
||||||
/* FIXME: we should track down all the already allocated VM pages and substract them, for now arbitrarily remove 64KB so that it matches NT */
|
/* FIXME: we should track down all the already allocated VM pages and substract them, for now arbitrarily remove 64KB so that it matches NT */
|
||||||
lpmemex->ullAvailVirtual = lpmemex->ullTotalVirtual-64*1024;
|
lpmemex->ullAvailVirtual = lpmemex->ullTotalVirtual-64*1024;
|
||||||
memcpy(&cached_memstatus,lpmemex,sizeof(*lpmemex));
|
|
||||||
|
|
||||||
/* it appears some memory display programs want to divide by these values */
|
|
||||||
if(lpmemex->ullTotalPageFile==0)
|
|
||||||
lpmemex->ullTotalPageFile++;
|
|
||||||
|
|
||||||
if(lpmemex->ullAvailPageFile==0)
|
|
||||||
lpmemex->ullAvailPageFile++;
|
|
||||||
|
|
||||||
/* MSDN says about AvailExtendedVirtual: Size of unreserved and uncommitted
|
/* MSDN says about AvailExtendedVirtual: Size of unreserved and uncommitted
|
||||||
memory in the extended portion of the virtual address space of the calling
|
memory in the extended portion of the virtual address space of the calling
|
||||||
@ -1161,6 +1159,8 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
|
|||||||
*/
|
*/
|
||||||
lpmemex->ullAvailExtendedVirtual = 0;
|
lpmemex->ullAvailExtendedVirtual = 0;
|
||||||
|
|
||||||
|
memcpy(&cached_memstatus,lpmemex,sizeof(*lpmemex));
|
||||||
|
|
||||||
TRACE("<-- LPMEMORYSTATUSEX: dwLength %ld, dwMemoryLoad %ld, ullTotalPhys %s, ullAvailPhys %s,"
|
TRACE("<-- LPMEMORYSTATUSEX: dwLength %ld, dwMemoryLoad %ld, ullTotalPhys %s, ullAvailPhys %s,"
|
||||||
" ullTotalPageFile %s, ullAvailPageFile %s, ullTotalVirtual %s, ullAvailVirtual %s\n",
|
" ullTotalPageFile %s, ullAvailPageFile %s, ullTotalVirtual %s, ullAvailVirtual %s\n",
|
||||||
lpmemex->dwLength, lpmemex->dwMemoryLoad, wine_dbgstr_longlong(lpmemex->ullTotalPhys),
|
lpmemex->dwLength, lpmemex->dwMemoryLoad, wine_dbgstr_longlong(lpmemex->ullTotalPhys),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user