Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.8 KiB

  1. #ifndef __SYSINFO_H_
  2. #define __SYSINFO_H_
  3. /*++
  4. Copyright (C) Microsoft Corporation
  5. Module Name:
  6. sysinfo.h
  7. Abstract:
  8. header file for sysinfo.cpp
  9. Author:
  10. William Hsieh (williamh) created
  11. Revision History:
  12. --*/
  13. typedef struct tagDiskInfo
  14. {
  15. DWORD cbSize;
  16. UINT DriveType;
  17. STORAGE_MEDIA_TYPE MediaType;
  18. ULARGE_INTEGER TotalSpace;
  19. ULARGE_INTEGER FreeSpace;
  20. LARGE_INTEGER Cylinders;
  21. ULONG Heads;
  22. ULONG BytesPerSector;
  23. ULONG SectorsPerTrack;
  24. }DISK_INFO, *PDISK_INFO;
  25. class CSystemInfo
  26. {
  27. public:
  28. CSystemInfo(CMachine* pMachine = NULL);
  29. ~CSystemInfo();
  30. BOOL GetDiskInfo(int Drive, DISK_INFO& DiskInfo);
  31. LPCTSTR ComputerName()
  32. {
  33. return m_strComputerName;
  34. }
  35. DWORD MachineType(TCHAR* Buffer, DWORD BufferSize);
  36. DWORD WindowsVersion(TCHAR* Buffer, DWORD BufferSize);
  37. DWORD SystemBiosDate(TCHAR* Buffer, DWORD BufferSize);
  38. DWORD SystemBiosVersion(TCHAR* Buffer, DWORD BufferSize);
  39. DWORD ProcessorType(TCHAR* Buffer, DWORD BufferSize);
  40. DWORD RegisteredOwner(TCHAR* Buffer, DWORD BufferSize);
  41. DWORD RegisteredOrganization(TCHAR* Buffer, DWORD BufferSize);
  42. DWORD ProcessorVendor(TCHAR* Buffer, DWORD BufferSize);
  43. DWORD NumberOfProcessors();
  44. DWORD ProcessorInfo(LPCTSTR ValueName, TCHAR* Buffer, DWORD BufferSize);
  45. void TotalPhysicalMemory(ULARGE_INTEGER& Size);
  46. private:
  47. DWORD InfoFromRegistry(LPCTSTR SubkeyName,
  48. LPCTSTR ValueName,
  49. TCHAR* Buffer,
  50. DWORD BufferSize,
  51. HKEY hKeyAncestor = NULL
  52. );
  53. String m_strComputerName;
  54. BOOL m_fLocalMachine;
  55. HKEY m_hKeyMachine;
  56. };
  57. #endif