libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
SYSTEM_PROCESS_INFORMATION.hh
Go to the documentation of this file.
1/*
2 * Copyright 2021 Assured Information Security, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#pragma once
17
18#include "SYSTEM_INFORMATION.hh"
19
25
26#include <cstdint>
27#include <ostream>
28#include <string>
29
30namespace introvirt {
31namespace windows {
32namespace nt {
33
35 public:
36 virtual int64_t KernelTime() const = 0;
37 virtual void KernelTime(int64_t KernelTime) = 0;
38
39 virtual int64_t UserTime() const = 0;
40 virtual void UserTime(int64_t UserTime) = 0;
41
42 virtual int64_t CreateTime() const = 0;
43 virtual void CreateTime(int64_t CreateTime) = 0;
44
45 virtual uint32_t WaitTime() const = 0;
46 virtual void WaitTime(uint32_t WaitTime) = 0;
47
48 virtual uint64_t StartAddress() const = 0;
49 virtual void StartAddress(uint64_t StartAddress) = 0;
50
51 virtual uint64_t UniqueProcessId() const = 0;
52 virtual void UniqueProcessId(uint64_t UniqueProcessId) = 0;
53
54 virtual uint64_t UniqueThreadId() const = 0;
55 virtual void UniqueThreadId(uint64_t UniqueThreadId) = 0;
56
57 virtual uint32_t Priority() const = 0;
58 virtual void Priority(uint32_t Priority) = 0;
59
60 virtual int32_t BasePriority() const = 0;
61 virtual void BasePriority(int32_t BasePriority) = 0;
62
63 virtual uint32_t ContextSwitchCount() const = 0;
64 virtual void ContextSwitchCount(uint32_t ContextSwitchCount) = 0;
65
66 virtual KTHREAD_STATE State() const = 0;
67 virtual void State(KTHREAD_STATE State) = 0;
68
69 virtual KWAIT_REASON WaitReason() const = 0;
71
72 virtual void write(std::ostream& os, const std::string& linePrefix = "") const = 0;
73 virtual Json::Value json() const = 0;
74
75 virtual guest_ptr<void> ptr() const = 0;
76
77 virtual ~SYSTEM_THREAD() = default;
78};
79
81 public:
82 virtual uint64_t PeakVirtualSize() const = 0;
83 virtual void PeakVirtualSize(uint64_t PeakVirtualSize) = 0;
84
85 virtual uint64_t VirtualSize() const = 0;
86 virtual void VirtualSize(uint64_t VirtualSize) = 0;
87
88 virtual uint32_t PageFaultCount() const = 0;
89 virtual void PageFaultCount(uint32_t PageFaultCount) = 0;
90
91 virtual uint64_t PeakWorkingSetSize() const = 0;
92 virtual void PeakWorkingSetSize(uint64_t PeakWorkingSetSize) = 0;
93
94 virtual uint64_t WorkingSetSize() const = 0;
95 virtual void WorkingSetSize(uint64_t WorkingSetSize) = 0;
96
97 virtual uint64_t QuotaPeakPagedPoolUsage() const = 0;
99
100 virtual uint64_t QuotaPagedPoolUsage() const = 0;
101 virtual void QuotaPagedPoolUsage(uint64_t QuotaPagedPoolUsage) = 0;
102
103 virtual uint64_t QuotaPeakNonPagedPoolUsage() const = 0;
105
106 virtual uint64_t QuotaNonPagedPoolUsage() const = 0;
108
109 virtual uint64_t PagefileUsage() const = 0;
110 virtual void PagefileUsage(uint64_t PagefileUsage) = 0;
111
112 virtual uint64_t PeakPagefileUsage() const = 0;
113 virtual void PeakPagefileUsage(uint64_t PeakPagefileUsage) = 0;
114
115 virtual uint64_t PrivatePageCount() const = 0;
116 virtual void PrivatePageCount(uint64_t PrivatePageCount) = 0;
117
118 virtual void write(std::ostream& os, const std::string& linePrefix = "") const = 0;
119 virtual Json::Value json() const = 0;
120
121 virtual guest_ptr<void> ptr() const = 0;
122
123 virtual ~VM_COUNTERS() = default;
124};
125
127 public:
128 virtual uint64_t ReadOperationCount() const = 0;
129 virtual void ReadOperationCount(uint64_t value) = 0;
130
131 virtual uint64_t WriteOperationCount() const = 0;
132 virtual void WriteOperationCount(uint64_t value) = 0;
133
134 virtual uint64_t OtherOperationCount() const = 0;
135 virtual void OtherOperationCount(uint64_t value) = 0;
136
137 virtual uint64_t ReadTransferCount() const = 0;
138 virtual void ReadTransferCount(uint64_t value) = 0;
139
140 virtual uint64_t WriteTransferCount() const = 0;
141 virtual void WriteTransferCount(uint64_t value) = 0;
142
143 virtual uint64_t OtherTransferCount() const = 0;
144 virtual void OtherTransferCount(uint64_t value) = 0;
145
146 virtual void write(std::ostream& os, const std::string& linePrefix = "") const = 0;
147 virtual Json::Value json() const = 0;
148
149 virtual guest_ptr<void> ptr() const = 0;
150
151 virtual ~IO_COUNTERS() = default;
152};
153
155 public:
156 virtual uint32_t NextEntryOffset() const = 0;
157 virtual void NextEntryOffset(uint32_t value) = 0;
158
159 virtual uint32_t NumberOfThreads() const = 0;
160 virtual void NumberOfThreads(uint32_t NumberOfThreads) = 0;
161
162 virtual int64_t WorkingSetPrivateSize() const = 0;
164
165 virtual uint32_t HardFaultCount() const = 0;
166 virtual void HardFaultCount(uint32_t HardFaultCount) = 0;
167
168 virtual uint32_t NumberOfThreadsHighWatermark() const = 0;
170
171 virtual int64_t CycleTime() const = 0;
172 virtual void CycleTime(int64_t CycleTime) = 0;
173
174 virtual WindowsTime CreateTime() const = 0;
176
177 virtual int64_t UserTime() const = 0;
178 virtual void UserTime(int64_t UserTime) = 0;
179
180 virtual int64_t KernelTime() const = 0;
181 virtual void KernelTime(int64_t KernelTime) = 0;
182
183 virtual std::string ImageName() const = 0;
184 virtual void ImageName(const std::string& ImageName) = 0;
185
186 virtual int32_t BasePriority() const = 0;
187 virtual void BasePriority(int32_t BasePriority) = 0;
188
189 virtual uint64_t UniqueProcessId() const = 0;
190 virtual void UniqueProcessId(uint64_t UniqueProcessId) = 0;
191
192 virtual uint64_t InheritedFromUniqueProcessId() const = 0;
194
195 virtual uint32_t HandleCount() const = 0;
196 virtual void HandleCount(uint32_t HandleCount) = 0;
197
198 virtual uint32_t SessionId() const = 0;
199 virtual void SessionId(uint32_t SessionId) = 0;
200
201 virtual uint32_t UniqueProcessKey() const = 0;
202 virtual void UniqueProcessKey(uint32_t UniqueProcessKey) = 0;
203
204 virtual const VM_COUNTERS& VMCounters() const = 0;
205 virtual VM_COUNTERS& VMCounters() = 0;
206
207 virtual const IO_COUNTERS& IOCounters() const = 0;
208 virtual IO_COUNTERS& IOCounters() = 0;
209
211 public:
220 virtual SYSTEM_THREAD& operator[](uint32_t index) = 0;
221 virtual const SYSTEM_THREAD& operator[](uint32_t index) const = 0;
222
226 virtual SYSTEM_THREAD& at(uint32_t index) = 0;
227 virtual const SYSTEM_THREAD& at(uint32_t index) const = 0;
228
235 virtual iterator erase(const const_iterator& iter) = 0;
236
242 virtual uint32_t length() const = 0;
243
249 virtual iterator begin() = 0;
250
256 virtual iterator end() = 0;
257
263 virtual const_iterator begin() const = 0;
264
270 virtual const_iterator end() const = 0;
271
280 virtual uint32_t buffer_size() const = 0;
281
288 virtual void write(std::ostream& os, const std::string& linePrefix = "") const = 0;
289
295 virtual Json::Value json() const = 0;
296 };
297
298 virtual const ThreadArray& Threads() const = 0;
299 virtual ThreadArray& Threads() = 0;
300
301 virtual void write(std::ostream& os, const std::string& linePrefix = "") const = 0;
302 virtual Json::Value json() const = 0;
303
304 virtual guest_ptr<void> ptr() const = 0;
305 virtual uint32_t buffer_size() const = 0;
306
308};
309
322
323} /* namespace nt */
324} /* namespace windows */
325} /* namespace introvirt */
Definition guest_ptr.hh:88
Helper class for the Windows time format.
Definition WindowsTime.hh:33
Definition SYSTEM_PROCESS_INFORMATION.hh:126
virtual uint64_t ReadOperationCount() const =0
virtual void OtherTransferCount(uint64_t value)=0
virtual void WriteOperationCount(uint64_t value)=0
virtual guest_ptr< void > ptr() const =0
virtual void ReadTransferCount(uint64_t value)=0
virtual uint64_t OtherTransferCount() const =0
virtual void write(std::ostream &os, const std::string &linePrefix="") const =0
virtual void ReadOperationCount(uint64_t value)=0
virtual void WriteTransferCount(uint64_t value)=0
virtual uint64_t WriteOperationCount() const =0
virtual uint64_t WriteTransferCount() const =0
virtual uint64_t OtherOperationCount() const =0
virtual Json::Value json() const =0
virtual uint64_t ReadTransferCount() const =0
virtual void OtherOperationCount(uint64_t value)=0
Definition SYSTEM_INFORMATION.hh:32
Definition SYSTEM_PROCESS_INFORMATION.hh:210
virtual const_iterator begin() const =0
Get an iterator to the first entry.
virtual SYSTEM_THREAD & at(uint32_t index)=0
Get an entry at the specified index.
virtual Json::Value json() const =0
Get a Json respresentation of the buffer.
virtual iterator end()=0
Get the end iterator.
virtual void write(std::ostream &os, const std::string &linePrefix="") const =0
Write out a human-readable representation.
virtual SYSTEM_THREAD & operator[](uint32_t index)=0
Get an entry at the specified index.
virtual iterator erase(const const_iterator &iter)=0
Remove an element from the list.
virtual uint32_t length() const =0
Get the number of entries.
virtual iterator begin()=0
Get an iterator to the first entry.
virtual const SYSTEM_THREAD & operator[](uint32_t index) const =0
virtual const SYSTEM_THREAD & at(uint32_t index) const =0
virtual const_iterator end() const =0
Get the end iterator.
virtual uint32_t buffer_size() const =0
Get the total size of the buffer in bytes.
Definition SYSTEM_PROCESS_INFORMATION.hh:154
virtual void ImageName(const std::string &ImageName)=0
virtual void InheritedFromUniqueProcessId(uint64_t InheritedFromUniqueProcessId)=0
virtual int64_t CycleTime() const =0
virtual void UserTime(int64_t UserTime)=0
virtual ~SYSTEM_PROCESS_INFORMATION_ENTRY()=default
virtual uint32_t NextEntryOffset() const =0
virtual WindowsTime CreateTime() const =0
virtual uint32_t UniqueProcessKey() const =0
virtual void WorkingSetPrivateSize(int64_t WorkingSetPrivateSize)=0
virtual int64_t UserTime() const =0
virtual const VM_COUNTERS & VMCounters() const =0
virtual uint32_t SessionId() const =0
virtual int32_t BasePriority() const =0
virtual void HardFaultCount(uint32_t HardFaultCount)=0
virtual void NextEntryOffset(uint32_t value)=0
virtual uint32_t HardFaultCount() const =0
virtual void write(std::ostream &os, const std::string &linePrefix="") const =0
virtual void NumberOfThreadsHighWatermark(uint32_t NumberOfThreadsHighWatermark)=0
virtual void SessionId(uint32_t SessionId)=0
virtual uint64_t UniqueProcessId() const =0
virtual Json::Value json() const =0
virtual const IO_COUNTERS & IOCounters() const =0
virtual guest_ptr< void > ptr() const =0
virtual uint32_t NumberOfThreadsHighWatermark() const =0
virtual void UniqueProcessKey(uint32_t UniqueProcessKey)=0
virtual const ThreadArray & Threads() const =0
virtual int64_t WorkingSetPrivateSize() const =0
virtual IO_COUNTERS & IOCounters()=0
virtual void HandleCount(uint32_t HandleCount)=0
virtual uint32_t HandleCount() const =0
virtual void UniqueProcessId(uint64_t UniqueProcessId)=0
virtual void NumberOfThreads(uint32_t NumberOfThreads)=0
virtual void CreateTime(WindowsTime CreateTime)=0
virtual void KernelTime(int64_t KernelTime)=0
virtual uint32_t NumberOfThreads() const =0
virtual VM_COUNTERS & VMCounters()=0
virtual int64_t KernelTime() const =0
virtual void CycleTime(int64_t CycleTime)=0
virtual void BasePriority(int32_t BasePriority)=0
virtual std::string ImageName() const =0
virtual uint64_t InheritedFromUniqueProcessId() const =0
virtual uint32_t buffer_size() const =0
virtual ThreadArray & Threads()=0
Definition SYSTEM_PROCESS_INFORMATION.hh:310
virtual iterator erase(const const_iterator &position)=0
virtual const_iterator begin() const =0
virtual const_iterator end() const =0
Definition SYSTEM_PROCESS_INFORMATION.hh:34
virtual void UniqueProcessId(uint64_t UniqueProcessId)=0
virtual int64_t KernelTime() const =0
virtual void UniqueThreadId(uint64_t UniqueThreadId)=0
virtual uint64_t UniqueProcessId() const =0
virtual uint32_t ContextSwitchCount() const =0
virtual uint32_t Priority() const =0
virtual guest_ptr< void > ptr() const =0
virtual int32_t BasePriority() const =0
virtual uint32_t WaitTime() const =0
virtual void StartAddress(uint64_t StartAddress)=0
virtual int64_t UserTime() const =0
virtual void WaitTime(uint32_t WaitTime)=0
virtual KTHREAD_STATE State() const =0
virtual uint64_t StartAddress() const =0
virtual void ContextSwitchCount(uint32_t ContextSwitchCount)=0
virtual int64_t CreateTime() const =0
virtual void UserTime(int64_t UserTime)=0
virtual void WaitReason(KWAIT_REASON WaitReason)=0
virtual void CreateTime(int64_t CreateTime)=0
virtual void KernelTime(int64_t KernelTime)=0
virtual uint64_t UniqueThreadId() const =0
virtual Json::Value json() const =0
virtual void Priority(uint32_t Priority)=0
virtual void BasePriority(int32_t BasePriority)=0
virtual void State(KTHREAD_STATE State)=0
virtual void write(std::ostream &os, const std::string &linePrefix="") const =0
virtual KWAIT_REASON WaitReason() const =0
Definition SYSTEM_PROCESS_INFORMATION.hh:80
virtual uint64_t WorkingSetSize() const =0
virtual uint64_t PeakWorkingSetSize() const =0
virtual uint64_t PeakVirtualSize() const =0
virtual void PeakWorkingSetSize(uint64_t PeakWorkingSetSize)=0
virtual void PeakVirtualSize(uint64_t PeakVirtualSize)=0
virtual uint64_t PagefileUsage() const =0
virtual uint64_t QuotaPagedPoolUsage() const =0
virtual void QuotaPeakPagedPoolUsage(uint64_t QuotaPeakPagedPoolUsage)=0
virtual void QuotaPagedPoolUsage(uint64_t QuotaPagedPoolUsage)=0
virtual void PagefileUsage(uint64_t PagefileUsage)=0
virtual uint32_t PageFaultCount() const =0
virtual uint64_t VirtualSize() const =0
virtual guest_ptr< void > ptr() const =0
virtual void QuotaPeakNonPagedPoolUsage(uint64_t QuotaPeakNonPagedPoolUsage)=0
virtual uint64_t PeakPagefileUsage() const =0
virtual void WorkingSetSize(uint64_t WorkingSetSize)=0
virtual uint64_t QuotaPeakNonPagedPoolUsage() const =0
virtual uint64_t QuotaNonPagedPoolUsage() const =0
virtual void PrivatePageCount(uint64_t PrivatePageCount)=0
virtual Json::Value json() const =0
virtual uint64_t QuotaPeakPagedPoolUsage() const =0
virtual void PageFaultCount(uint32_t PageFaultCount)=0
virtual uint64_t PrivatePageCount() const =0
virtual void write(std::ostream &os, const std::string &linePrefix="") const =0
virtual void PeakPagefileUsage(uint64_t PeakPagefileUsage)=0
virtual void VirtualSize(uint64_t VirtualSize)=0
virtual void QuotaNonPagedPoolUsage(uint64_t QuotaNonPagedPoolUsage)=0
Iterator helper for _INFORMATION types that have a fixed array result.
Definition array_iterator.hh:35
Iterator helper for _INFORMATION types that have a NextEntryOffset field.
Definition offset_iterator.hh:34
KTHREAD_STATE
Definition KTHREAD_STATE.hh:25
KWAIT_REASON
Definition KWAIT_REASON.hh:25
Core IntroVirt classes.
Definition Cr0.hh:20