📄 cupagent.h
字号:
// CupAgent.h: interface for the CupAgent class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CUPAGENT_H__544A54F7_6DB6_4A32_B5E0_0A021122397B__INCLUDED_)
#define AFX_CUPAGENT_H__544A54F7_6DB6_4A32_B5E0_0A021122397B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define SystemBasicInformation 0
#define SystemPerformanceInformation 2
#define SystemTimeInformation 3
#define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
class CupAgent
{
public:
CupAgent();
bool StartAgent();
StopAgent();
double getUsage();
virtual ~CupAgent();
private:
struct SYSTEM_BASIC_INFORMATION
{
DWORD dwUnknown1;
ULONG uKeMaximumIncrement;
ULONG uPageSize;
ULONG uMmNumberOfPhysicalPages;
ULONG uMmLowestPhysicalPage;
ULONG uMmHighestPhysicalPage;
ULONG uAllocationGranularity;
PVOID pLowestUserAddress;
PVOID pMmHighestUserAddress;
ULONG uKeActiveProcessors;
BYTE bKeNumberProcessors;
BYTE bUnknown2;
WORD wUnknown3;
}SysBaseInfo ;
struct SYSTEM_PERFORMANCE_INFORMATION
{
LARGE_INTEGER liIdleTime;
DWORD dwSpare[76];
} SysPerfInfo;
struct SYSTEM_TIME_INFORMATION
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SysTimeInfo;
int SleepTime;
BOOL State;
PROCNTQSI NtQuerySystemInformation;
LARGE_INTEGER liOldIdleTime ;
LARGE_INTEGER liOldSystemTime ;
// SYSTEM_PERFORMANCE_INFORMATION SysPerfInfo;
// SYSTEM_TIME_INFORMATION SysTimeInfo;
// SYSTEM_BASIC_INFORMATION SysBaseInfo;
double dbIdleTime;
double dbSystemTime;
LONG status;
};
#endif // !defined(AFX_CUPAGENT_H__544A54F7_6DB6_4A32_B5E0_0A021122397B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -