182 lines
4.5 KiB
C++
182 lines
4.5 KiB
C++
#ifndef _PSAPINT_PROCESSMEMORYCOUNTERS_HPP_
|
|
#define _PSAPINT_PROCESSMEMORYCOUNTERS_HPP_
|
|
#ifndef _PSAPI_H_
|
|
#include <psapi/psapi.h>
|
|
#endif
|
|
|
|
class ProcessMemoryCounters : private PROCESS_MEMORY_COUNTERS
|
|
{
|
|
public:
|
|
ProcessMemoryCounters(void);
|
|
virtual ~ProcessMemoryCounters();
|
|
DWORD pageFaultCount(void)const;
|
|
void pageFaultCount(DWORD pageFaultCount);
|
|
DWORD peakWorkingSetSize(void)const;
|
|
void peakWorkingSetSize(DWORD peakWorkingSetSize);
|
|
DWORD workingSetSize(void)const;
|
|
void workingSetSize(DWORD workingSetSize);
|
|
DWORD quotaPeakPagedPoolUsage(void)const;
|
|
void quotaPeakPagedPoolUsage(DWORD quotaPeakPagedPoolUsage);
|
|
DWORD quotaPagedPoolUsage(void)const;
|
|
void quotaPagedPoolUsage(DWORD quotaPagedPoolUsage);
|
|
DWORD quotaPeakedNonPagedPoolUsage(void)const;
|
|
void quotaPeakedNonPagedPoolUsage(DWORD quotaPeakedNonPagedPoolUsage);
|
|
DWORD quotaNonPagedPoolUsage(void)const;
|
|
void quotaNonPagedPoolUsage(DWORD quotaNonPagedPoolUsage);
|
|
DWORD pageFileUsage(void)const;
|
|
void pageFileUsage(DWORD pageFileUsage);
|
|
DWORD peakPageFileUsage(void)const;
|
|
void peakPageFileUsage(DWORD peakPageFileUsage);
|
|
PROCESS_MEMORY_COUNTERS &getPROCESSMEMORYCOUNTERS(void);
|
|
static DWORD size(void);
|
|
private:
|
|
void zeroInit(void);
|
|
};
|
|
|
|
inline
|
|
ProcessMemoryCounters::ProcessMemoryCounters(void)
|
|
{
|
|
zeroInit();
|
|
}
|
|
|
|
inline
|
|
ProcessMemoryCounters::~ProcessMemoryCounters()
|
|
{
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::pageFaultCount(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::PageFaultCount;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::pageFaultCount(DWORD pageFaultCount)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::PageFaultCount=pageFaultCount;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::peakWorkingSetSize(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::PeakWorkingSetSize;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::peakWorkingSetSize(DWORD peakWorkingSetSize)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::PeakWorkingSetSize=peakWorkingSetSize;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::workingSetSize(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::WorkingSetSize;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::workingSetSize(DWORD workingSetSize)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::WorkingSetSize=workingSetSize;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::quotaPeakPagedPoolUsage(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::QuotaPeakPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::quotaPeakPagedPoolUsage(DWORD quotaPeakPagedPoolUsage)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::QuotaPeakPagedPoolUsage=quotaPeakPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::quotaPagedPoolUsage(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::QuotaPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::quotaPagedPoolUsage(DWORD quotaPagedPoolUsage)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::QuotaPagedPoolUsage=quotaPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::quotaPeakedNonPagedPoolUsage(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::QuotaPeakNonPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::quotaPeakedNonPagedPoolUsage(DWORD quotaPeakedNonPagedPoolUsage)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::QuotaPeakNonPagedPoolUsage=quotaPeakedNonPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::quotaNonPagedPoolUsage(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::QuotaNonPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::quotaNonPagedPoolUsage(DWORD quotaNonPagedPoolUsage)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::QuotaNonPagedPoolUsage=quotaNonPagedPoolUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::pageFileUsage(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::PagefileUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::pageFileUsage(DWORD pageFileUsage)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::PagefileUsage=pageFileUsage;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::peakPageFileUsage(void)const
|
|
{
|
|
return PROCESS_MEMORY_COUNTERS::PeakPagefileUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::peakPageFileUsage(DWORD peakPageFileUsage)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::PeakPagefileUsage;
|
|
}
|
|
|
|
inline
|
|
void ProcessMemoryCounters::zeroInit(void)
|
|
{
|
|
PROCESS_MEMORY_COUNTERS::cb=size();
|
|
PROCESS_MEMORY_COUNTERS::PageFaultCount=0;
|
|
PROCESS_MEMORY_COUNTERS::PeakWorkingSetSize=0;
|
|
PROCESS_MEMORY_COUNTERS::WorkingSetSize=0;
|
|
PROCESS_MEMORY_COUNTERS::QuotaPeakPagedPoolUsage=0;
|
|
PROCESS_MEMORY_COUNTERS::QuotaPagedPoolUsage=0;
|
|
PROCESS_MEMORY_COUNTERS::QuotaPeakNonPagedPoolUsage=0;
|
|
PROCESS_MEMORY_COUNTERS::QuotaNonPagedPoolUsage=0;
|
|
PROCESS_MEMORY_COUNTERS::PagefileUsage=0;
|
|
PROCESS_MEMORY_COUNTERS::PeakPagefileUsage=0;
|
|
}
|
|
|
|
inline
|
|
PROCESS_MEMORY_COUNTERS &ProcessMemoryCounters::getPROCESSMEMORYCOUNTERS(void)
|
|
{
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
DWORD ProcessMemoryCounters::size(void)
|
|
{
|
|
return sizeof(PROCESS_MEMORY_COUNTERS);
|
|
}
|
|
#endif
|