Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ProcessDescriptor.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_PROCESS_H
2 #define GAUDIKERNEL_PROCESS_H
3 
4 // Framework include files
5 #include "GaudiKernel/Kernel.h"
7 
8 namespace System {
9  // Forward declarations
10  class ProcessDescriptor;
12  ProcessDescriptor* getProcess();
13 
17  typedef struct _PEB* PPEB;
19  long ExitStatus;
21  unsigned long AffinityMask;
23  unsigned long UniqueProcessId;
25  };
26 
32  struct QUOTA_LIMITS {
33  unsigned long PagedPoolLimit;
34  unsigned long NonPagedPoolLimit;
35  unsigned long MinimumWorkingSetSize;
36  unsigned long MaximumWorkingSetSize;
37  unsigned long PagefileLimit;
38  long long TimeLimit;
39  };
40 
44  struct IO_COUNTERS {
45  unsigned long ReadOperationCount;
46  unsigned long WriteOperationCount;
47  unsigned long OtherOperationCount;
48  // long long ReadOperationCount;
49  // long long WriteOperationCount;
50  // long long OtherOperationCount;
51  long long ReadTransferCount;
52  long long WriteTransferCount;
53  long long OtherTransferCount;
54  };
55 
59  struct VM_COUNTERS {
60  unsigned long PeakVirtualSize;
61  unsigned long VirtualSize;
62  unsigned long PageFaultCount;
63  unsigned long PeakWorkingSetSize;
64  unsigned long WorkingSetSize;
65  unsigned long QuotaPeakPagedPoolUsage;
66  unsigned long QuotaPagedPoolUsage;
68  unsigned long QuotaNonPagedPoolUsage;
69  unsigned long PagefileUsage;
70  unsigned long PeakPagefileUsage;
71  };
72 
77  unsigned long PeakPagedPoolUsage;
78  unsigned long PagedPoolUsage;
79  unsigned long PagedPoolLimit;
80  unsigned long PeakNonPagedPoolUsage;
81  unsigned long NonPagedPoolUsage;
82  unsigned long NonPagedPoolLimit;
83  unsigned long PeakPagefileUsage;
84  unsigned long PagefileUsage;
85  unsigned long PagefileLimit;
86  };
87 
93  long long CreateTime;
94  long long ExitTime;
95  long long KernelTime;
96  long long UserTime;
97  // long long EllapsedTime; // Added by M.Frank
98  };
99 
110  void* m_handle;
112 
113  public:
114  ProcessHandle( long pid );
115  virtual ~ProcessHandle();
116  long item() { return m_needRelease ? 1 : 0; }
117  void* handle() { return m_handle; }
118  };
119 
120  public:
122  virtual ~ProcessDescriptor();
123  long query( long pid, InfoType info, PROCESS_BASIC_INFORMATION* buffer );
124  long query( long pid, InfoType info, POOLED_USAGE_AND_LIMITS* buffer );
125  long query( long pid, InfoType info, KERNEL_USER_TIMES* buffer );
126  long query( long pid, InfoType info, QUOTA_LIMITS* buffer );
127  long query( long pid, InfoType info, VM_COUNTERS* buffer );
128  long query( long pid, InfoType info, IO_COUNTERS* buffer );
129  long query( long pid, InfoType info, long* buffer );
130  };
131 
133  static ProcessDescriptor p;
134  return &p;
135  }
136 } // namespace System
137 #endif // GAUDIKERNEL_PROCESS_H
unsigned long QuotaPeakPagedPoolUsage
unsigned long PagefileUsage
Process/Thread System and User Time NtQueryInformationProcess using ProcessTimes NtQueryInformationTh...
unsigned long MaximumWorkingSetSize
Note: OS specific details for environment resolution.
Definition: Debugger.h:19
unsigned long PeakPagefileUsage
Process I/O Counters NtQueryInformationProcess using ProcessIoCounters.
unsigned long PagefileLimit
unsigned long WorkingSetSize
unsigned long NonPagedPoolLimit
unsigned long PeakWorkingSetSize
unsigned long VirtualSize
unsigned long OtherOperationCount
unsigned long PageFaultCount
unsigned long QuotaNonPagedPoolUsage
unsigned long ReadOperationCount
unsigned long PeakVirtualSize
ProcessDescriptor * getProcess()
Retrieve Process structure.
Process Quotas NtQueryInformationProcess using ProcessQuotaLimits NtQueryInformationProcess using Pro...
struct _PEB * PPEB
Basic Process Information NtQueryInformationProcess using ProcessBasicInfo.
Provides access to process information.
Process Virtual Memory Counters NtQueryInformationProcess using ProcessVmCounters.
unsigned long PagedPoolLimit
Process Pooled Quota Usage and Limits NtQueryInformationProcess using ProcessPooledUsageAndLimits.
unsigned long MinimumWorkingSetSize
unsigned long WriteOperationCount
unsigned long QuotaPeakNonPagedPoolUsage
InfoType
Enumeration for fetching information.
Definition: SystemBase.h:18
void * ProcessHandle
Definition of the process handle.
Definition: ModuleInfo.h:32
unsigned long QuotaPagedPoolUsage