ReactOS  0.4.14-dev-1252-g782ff23
memory.c
Go to the documentation of this file.
1 /*
2  * MEMORY.C - internal command.
3  *
4  *
5  * History:
6  *
7  * 01-Sep-1999 (Eric Kohl)
8  * Started.
9  *
10  * 28-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
11  * Remove all hardcoded strings in En.rc
12  */
13 
14 #include "precomp.h"
15 
16 #ifdef INCLUDE_CMD_MEMORY
17 
19 {
20  MEMORYSTATUSEX msex;
21  TCHAR szMemoryLoad[20];
22  TCHAR szTotalPhys[40];
23  TCHAR szAvailPhys[40];
24  TCHAR szTotalPageFile[40];
25  TCHAR szAvailPageFile[40];
26  TCHAR szTotalVirtual[40];
27  TCHAR szAvailVirtual[40];
28  BOOL (WINAPI *GlobalMemoryStatusEx)(LPMEMORYSTATUSEX);
29 
30  if (!_tcsncmp (param, _T("/?"), 2))
31  {
33  return 0;
34  }
35 
37  = (BOOL (WINAPI *)(LPMEMORYSTATUSEX))GetProcAddress(GetModuleHandle(_T("KERNEL32")), "GlobalMemoryStatusEx");
39  {
40  msex.dwLength = sizeof(MEMORYSTATUSEX);
41  GlobalMemoryStatusEx(&msex);
42  }
43  else
44  {
45  MEMORYSTATUS ms;
46  ms.dwLength = sizeof(MEMORYSTATUS);
47  GlobalMemoryStatus(&ms);
48  msex.dwMemoryLoad = ms.dwMemoryLoad;
49  msex.ullTotalPhys = ms.dwTotalPhys;
50  msex.ullAvailPhys = ms.dwAvailPhys;
51  msex.ullTotalPageFile = ms.dwTotalPageFile;
52  msex.ullAvailPageFile = ms.dwAvailPageFile;
53  msex.ullTotalVirtual = ms.dwTotalVirtual;
54  msex.ullAvailVirtual = ms.dwAvailVirtual;
55  }
56 
57  ConvertULargeInteger(msex.dwMemoryLoad, szMemoryLoad, 20, FALSE);
58  ConvertULargeInteger(msex.ullTotalPhys, szTotalPhys, 40, TRUE);
59  ConvertULargeInteger(msex.ullAvailPhys, szAvailPhys, 40, TRUE);
60  ConvertULargeInteger(msex.ullTotalPageFile, szTotalPageFile, 40, TRUE);
61  ConvertULargeInteger(msex.ullAvailPageFile, szAvailPageFile, 40, TRUE);
62  ConvertULargeInteger(msex.ullTotalVirtual, szTotalVirtual, 40, TRUE);
63  ConvertULargeInteger(msex.ullAvailVirtual, szAvailVirtual, 40, TRUE);
64 
66  szMemoryLoad, szTotalPhys, szAvailPhys, szTotalPageFile,
67  szAvailPageFile, szTotalVirtual, szAvailVirtual);
68 
69  return 0;
70 }
71 
72 #endif /* INCLUDE_CMD_MEMORY */
73 
74 /* EOF */
#define TRUE
Definition: types.h:120
VOID ConOutResPaging(BOOL StartPaging, UINT resID)
Definition: console.c:182
#define BOOL
Definition: nt_native.h:43
int32_t INT
Definition: typedefs.h:57
CHAR * LPTSTR
Definition: xmlstorage.h:192
SIZE_T dwAvailVirtual
Definition: winbase.h:1189
SIZE_T dwAvailPhys
Definition: winbase.h:1185
SIZE_T dwAvailPageFile
Definition: winbase.h:1187
#define STRING_MEMORY_HELP1
Definition: resource.h:141
DWORD dwMemoryLoad
Definition: winbase.h:1183
struct _MEMORYSTATUS MEMORYSTATUS
char TCHAR
Definition: xmlstorage.h:189
#define _T(x)
Definition: vfdio.h:22
SIZE_T dwTotalVirtual
Definition: winbase.h:1188
INT ConvertULargeInteger(ULONGLONG num, LPTSTR des, UINT len, BOOL bPutSeparator)
Definition: cmd.c:188
GLfloat param
Definition: glext.h:5796
#define WINAPI
Definition: msvc.h:6
#define ConOutResPrintf(uID,...)
Definition: console.h:48
VOID NTAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer)
Definition: heapmem.c:1348
INT CommandMemory(LPTSTR param)
Definition: memory.c:18
#define GetModuleHandle
Definition: winbase.h:3667
#define STRING_MEMORY_HELP2
Definition: resource.h:142
SIZE_T dwTotalPageFile
Definition: winbase.h:1186
#define GetProcAddress(x, y)
Definition: compat.h:418
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
Definition: heapmem.c:1272
int _tcsncmp(const _TCHAR *s1, const _TCHAR *s2, size_t n)
Definition: tcsncmp.h:9
DWORD dwLength
Definition: winbase.h:1182
SIZE_T dwTotalPhys
Definition: winbase.h:1184