@@ -40,42 +40,41 @@ PIWindowsProcessInfoReader::PIWindowsProcessInfoReader(int64_t pProcessID)
4040bool PIWindowsProcessInfoReader::readData (PIProcessInfo& pData, ReadMode pMode)
4141{
4242 HANDLE lProcess = getProcessHandle ();
43- bool lRetval = false ;
43+ bool lRetVal = false ;
4444
4545 if (lProcess)
4646 {
47- lRetval = PIAbstractProcessInfoReader::readData (pData, pMode);
47+ lRetVal = PIAbstractProcessInfoReader::readData (pData, pMode);
4848
4949 if ((pMode & ReadModeFlags::Commandline) == ReadModeFlags::Commandline)
5050 {
51- lRetval &= readCommandLine (lProcess, pData);
51+ lRetVal &= readCommandLine (lProcess, pData);
5252 }
5353
54- if ((pMode & ReadModeFlags::CPULoad) == ReadModeFlags::CPULoad)
54+ if ((pMode & ReadModeFlags::CPULoad) == ReadModeFlags::CPULoad)
5555 {
5656 pData.mCPULoad = calculateCPULoad (lProcess);
5757 }
5858
59- if ((pMode & ReadModeFlags::Memory) == ReadModeFlags::Memory )
59+ if ((pMode & ReadModeFlags::Memory) != 0 )
6060 {
61- lRetval &= readMemoryData (lProcess, pData);
61+ lRetVal &= readMemoryData (lProcess, pData, pMode );
6262 }
6363
6464 if ((pMode & ReadModeFlags::ParentPID) == ReadModeFlags::ParentPID)
6565 {
66- lRetval &= readParentProcessID (lProcess, pData);
66+ lRetVal &= readParentProcessID (lProcess, pData);
6767 }
6868
6969 CloseHandle (lProcess);
7070 }
7171
72- return lRetval ;
72+ return lRetVal ;
7373}
7474
7575/* private methods*/
7676double PIWindowsProcessInfoReader::calculateCPULoad (HANDLE pProcess)
7777{
78- double lRetval = 0.0 ;
7978 FILETIME lFTime, lFSysTime, lFUserTime;
8079 ULARGE_INTEGER lNowTime, lSysTime, lUserTime;
8180
@@ -86,16 +85,16 @@ double PIWindowsProcessInfoReader::calculateCPULoad(HANDLE pProcess)
8685 std::memcpy (&lUserTime, &lFUserTime, sizeof (FILETIME ));
8786 std::memcpy (&lSysTime, &lFSysTime, sizeof (FILETIME ));
8887
89- lRetval = static_cast <double >(( lSysTime.QuadPart - mLastSysCPUTime .QuadPart ) +
88+ double lRetVal = static_cast <double >(lSysTime.QuadPart - mLastSysCPUTime .QuadPart +
9089 (lUserTime.QuadPart - mLastUserCPUTime .QuadPart ));
91- lRetval /= (lNowTime.QuadPart - mLastCPUTime .QuadPart );
92- lRetval /= mProcessorCount ;
90+ lRetVal /= static_cast < double > (lNowTime.QuadPart - mLastCPUTime .QuadPart );
91+ lRetVal /= mProcessorCount ;
9392
9493 mLastCPUTime = lNowTime;
9594 mLastSysCPUTime = lSysTime;
9695 mLastUserCPUTime = lUserTime;
9796
98- return lRetval * 100.0 ;
97+ return lRetVal * 100.0 ;
9998}
10099
101100HANDLE PIWindowsProcessInfoReader::getProcessHandle () const
@@ -108,15 +107,14 @@ HANDLE PIWindowsProcessInfoReader::getProcessHandle() const
108107 return OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ , FALSE , mProcessID );
109108}
110109
111- bool PIWindowsProcessInfoReader::readCommandLine (HANDLE pProcess, PIProcessInfo& pData)
110+ bool PIWindowsProcessInfoReader::readCommandLine (HANDLE pProcess, PIProcessInfo& pData) const
112111{
113112 pData.mCmdLine = " " ;
114113
115- UNICODE_STRING *lCommandLineBuffer;
116114 ULONG lBufferSize = 0 ;
117115
118116 lBufferSize = sizeof (UNICODE_STRING ) + MAX_PATH ;
119- lCommandLineBuffer = static_cast <UNICODE_STRING *>(std::malloc (lBufferSize));
117+ UNICODE_STRING * lCommandLineBuffer = static_cast <UNICODE_STRING *>(std::malloc (lBufferSize));
120118
121119 NTSTATUS lStatus = NtQueryInformationProcess (pProcess, ProcessCommandLineInformation, lCommandLineBuffer, lBufferSize, &lBufferSize);
122120
@@ -140,9 +138,9 @@ bool PIWindowsProcessInfoReader::readCommandLine(HANDLE pProcess, PIProcessInfo&
140138 return false ;
141139 }
142140
143- int lStrLen = WideCharToMultiByte (CP_UTF8 , 0 , lCommandLineBuffer->Buffer , lCommandLineBuffer->Length , NULL , 0 , NULL , NULL ) + 1 ;
141+ int lStrLen = WideCharToMultiByte (CP_UTF8 , 0 , lCommandLineBuffer->Buffer , lCommandLineBuffer->Length , nullptr , 0 , nullptr , nullptr ) + 1 ;
144142 char * lMbString = static_cast <char *>(std::calloc (lStrLen, sizeof (char )));
145- WideCharToMultiByte (CP_UTF8 , 0 , lCommandLineBuffer->Buffer , -1 , lMbString, lStrLen, NULL , NULL );
143+ WideCharToMultiByte (CP_UTF8 , 0 , lCommandLineBuffer->Buffer , -1 , lMbString, lStrLen, nullptr , nullptr );
146144
147145 pData.mCmdLine = lMbString;
148146
@@ -152,39 +150,46 @@ bool PIWindowsProcessInfoReader::readCommandLine(HANDLE pProcess, PIProcessInfo&
152150 return true ;
153151}
154152
155- bool PIWindowsProcessInfoReader::readMemoryData (HANDLE pProcess, PIProcessInfo& pData)
153+ bool PIWindowsProcessInfoReader::readMemoryData (HANDLE pProcess, PIProcessInfo& pData, ReadMode pMode) const
156154{
157- PROCESS_MEMORY_COUNTERS_EX2 lProcMemCounters;
158-
159- if (GetProcessMemoryInfo (pProcess, (PROCESS_MEMORY_COUNTERS *)&lProcMemCounters, sizeof (lProcMemCounters)))
160- {
161- pData.mMemoryResident = lProcMemCounters.WorkingSetSize ;
162- pData.mMemorySwapped = lProcMemCounters.PagefileUsage ;
163- }
164- else
165- {
166- return false ;
167- }
155+ bool lRetVal = true ;
156+
157+ if ((pMode & ReadModeFlags::WorkingMemory) == ReadModeFlags::WorkingMemory)
158+ {
159+ PROCESS_MEMORY_COUNTERS_EX2 lProcMemCounters;
160+ if (GetProcessMemoryInfo (pProcess, reinterpret_cast <PROCESS_MEMORY_COUNTERS *>(&lProcMemCounters), sizeof (lProcMemCounters)))
161+ {
162+ pData.mMemoryResident = lProcMemCounters.WorkingSetSize ;
163+ pData.mMemorySwapped = lProcMemCounters.PagefileUsage ;
164+ }
165+ else
166+ {
167+ lRetVal = false ;
168+ }
169+ }
168170
169- MEMORY_BASIC_INFORMATION lProcMemBaseInfo;
170- SIZE_T lProcAddress = 0 ;
171- SIZE_T lProcVirtualSize = 0 ;
172-
173- while ( VirtualQueryEx (pProcess, reinterpret_cast < LPCVOID >(lProcAddress), &lProcMemBaseInfo, sizeof (lProcMemBaseInfo)))
174- {
175- if (lProcMemBaseInfo. State == MEM_COMMIT or lProcMemBaseInfo. State == MEM_RESERVE )
171+ if ((pMode & ReadModeFlags::VirtualMemory) == ReadModeFlags::VirtualMemory)
172+ {
173+ MEMORY_BASIC_INFORMATION lProcMemBaseInfo ;
174+ SIZE_T lProcAddress = 0 ;
175+ SIZE_T lProcVirtualSize = 0 ;
176+
177+ while ( VirtualQueryEx (pProcess, reinterpret_cast < LPCVOID >(lProcAddress), & lProcMemBaseInfo, sizeof (lProcMemBaseInfo)) )
176178 {
177- lProcVirtualSize += lProcMemBaseInfo.RegionSize ;
179+ if (lProcMemBaseInfo.State == MEM_COMMIT or lProcMemBaseInfo.State == MEM_RESERVE )
180+ {
181+ lProcVirtualSize += lProcMemBaseInfo.RegionSize ;
182+ }
183+ lProcAddress += lProcMemBaseInfo.RegionSize ;
178184 }
179- lProcAddress += lProcMemBaseInfo.RegionSize ;
180- }
185+
186+ pData.mMemoryVirtual = lProcVirtualSize;
187+ }
181188
182- pData.mMemoryVirtual = lProcVirtualSize;
183-
184- return true ;
189+ return lRetVal;
185190}
186191
187- bool PIWindowsProcessInfoReader::readParentProcessID (HANDLE pProcess, PIProcessInfo& pData)
192+ bool PIWindowsProcessInfoReader::readParentProcessID (HANDLE pProcess, PIProcessInfo& pData) const
188193{
189194 PROCESS_BASIC_INFORMATION lPbi;
190195 ULONG lReturnLength;
0 commit comments