Page principale | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Composants | Déclarations | Pages associées

CpuUsage.h

Aller à la documentation de ce fichier.
00001 #if !defined(AFX_GETCPUUSAGE1_H__EB4F7708_88C4_4839_9AA0_6A57E33999B5__INCLUDED_)
00002 #define AFX_GETCPUUSAGE1_H__EB4F7708_88C4_4839_9AA0_6A57E33999B5__INCLUDED_
00003 
00004 #if _MSC_VER > 1000
00005 #pragma once
00006 #endif // _MSC_VER > 1000
00007 
00008 // ***************************************************************************************
00009 
00010 #include "winternl.h"
00011 
00012 #define SystemBasicInformation       0
00013 #define SystemPerformanceInformation 2
00014 #define SystemTimeInformation        3
00015 
00016 #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
00017 
00018 // ***************************************************************************************
00019 
00020 typedef struct
00021 {
00022     DWORD   dwUnknown1;
00023     ULONG   uKeMaximumIncrement;
00024     ULONG   uPageSize;
00025     ULONG   uMmNumberOfPhysicalPages;
00026     ULONG   uMmLowestPhysicalPage;
00027     ULONG   uMmHighestPhysicalPage;
00028     ULONG   uAllocationGranularity;
00029     PVOID   pLowestUserAddress;
00030     PVOID   pMmHighestUserAddress;
00031     ULONG   uKeActiveProcessors;
00032     BYTE    bKeNumberProcessors;
00033     BYTE    bUnknown2;
00034     WORD    wUnknown3;
00035 } SYSTEM_BASIC_INFORMATION;
00036 
00037 typedef struct
00038 {
00039     LARGE_INTEGER   liIdleTime;
00040     DWORD           dwSpare[76];
00041 } SYSTEM_PERFORMANCE_INFORMATION;
00042 
00043 typedef struct
00044 {
00045     LARGE_INTEGER liKeBootTime;
00046     LARGE_INTEGER liKeSystemTime;
00047     LARGE_INTEGER liExpTimeZoneBias;
00048     ULONG         uCurrentTimeZoneId;
00049     DWORD         dwReserved;
00050 } SYSTEM_TIME_INFORMATION;
00051 
00052 typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
00053 
00054 // ***************************************************************************************
00055 
00056 class CCpuUsage  
00057 {
00058         public:
00059                 PROCNTQSI NtQuerySystemInformation;
00060 
00061         private:
00062                 BOOL m_error;
00063                 SYSTEM_PERFORMANCE_INFORMATION SysPerfInfo;
00064                 SYSTEM_TIME_INFORMATION        SysTimeInfo;
00065                 SYSTEM_BASIC_INFORMATION       SysBaseInfo;
00066                 double                         dbIdleTime;
00067                 double                         dbSystemTime;
00068                 LONG                           status;
00069                 LARGE_INTEGER                  liOldIdleTime;
00070                 LARGE_INTEGER                  liOldSystemTime;
00071         
00072         public:
00073                 int Get(char *process=NULL);
00074                 CCpuUsage();
00075                 virtual ~CCpuUsage();
00076 
00077 };
00078 
00079 #endif // !defined(AFX_GETCPUUSAGE1_H__EB4F7708_88C4_4839_9AA0_6A57E33999B5__INCLUDED_)

Généré le Thu Apr 8 18:58:42 2004 pour SFC par doxygen 1.3.6