ReactOS 0.4.15-dev-7942-gd23573b
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);
42 }
43 else
44 {
45 MEMORYSTATUS ms;
46 ms.dwLength = sizeof(MEMORYSTATUS);
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 */
INT ConvertULargeInteger(ULONGLONG num, LPTSTR des, UINT len, BOOL bPutSeparator)
Definition: cmd.c:189
VOID ConOutResPaging(BOOL StartPaging, UINT resID)
Definition: console.c:182
#define ConOutResPrintf(uID,...)
Definition: console.h:47
INT CommandMemory(LPTSTR param)
Definition: memory.c:18
#define STRING_MEMORY_HELP1
Definition: resource.h:141
#define STRING_MEMORY_HELP2
Definition: resource.h:142
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define GetProcAddress(x, y)
Definition: compat.h:753
GLfloat param
Definition: glext.h:5796
VOID NTAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer)
Definition: heapmem.c:1365
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
Definition: heapmem.c:1272
#define _tcsncmp
Definition: tchar.h:1428
#define BOOL
Definition: nt_native.h:43
SIZE_T dwTotalPhys
Definition: winbase.h:1218
DWORD dwLength
Definition: winbase.h:1216
DWORD dwMemoryLoad
Definition: winbase.h:1217
SIZE_T dwAvailPageFile
Definition: winbase.h:1221
SIZE_T dwAvailVirtual
Definition: winbase.h:1223
SIZE_T dwAvailPhys
Definition: winbase.h:1219
SIZE_T dwTotalPageFile
Definition: winbase.h:1220
SIZE_T dwTotalVirtual
Definition: winbase.h:1222
int32_t INT
Definition: typedefs.h:58
#define _T(x)
Definition: vfdio.h:22
struct _MEMORYSTATUS MEMORYSTATUS
#define GetModuleHandle
Definition: winbase.h:3827
#define WINAPI
Definition: msvc.h:6
char TCHAR
Definition: xmlstorage.h:189
CHAR * LPTSTR
Definition: xmlstorage.h:192