summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-01-03 11:57:14 -0800
committerGiampaolo Rodola <g.rodola@gmail.com>2020-01-03 11:57:14 -0800
commit220a1948770eda6cd208c3fb0b6ed017d1772288 (patch)
tree4f73b7d07bca1cffef19d28e7e59f6cf07308ce5
parent0da43ac0a33c71329c6116aa5aee405d0298fd55 (diff)
downloadpsutil-220a1948770eda6cd208c3fb0b6ed017d1772288.tar.gz
cleanup ntextapi.h
-rw-r--r--psutil/arch/windows/ntextapi.h218
1 files changed, 84 insertions, 134 deletions
diff --git a/psutil/arch/windows/ntextapi.h b/psutil/arch/windows/ntextapi.h
index 8db79d40..3c6b76cf 100644
--- a/psutil/arch/windows/ntextapi.h
+++ b/psutil/arch/windows/ntextapi.h
@@ -2,7 +2,9 @@
* Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
+ * Define Windows structs and constants which are considered private.
*/
+
#if !defined(__NTEXTAPI_H__)
#define __NTEXTAPI_H__
#include <winternl.h>
@@ -17,72 +19,83 @@ typedef LONG NTSTATUS;
#define STATUS_NOT_FOUND ((NTSTATUS)0xC0000225L)
#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L)
+// ================================================================
+// Enums
+// ================================================================
+
+#undef SystemExtendedHandleInformation
#define SystemExtendedHandleInformation 64
+#undef MemoryWorkingSetInformation
#define MemoryWorkingSetInformation 0x1
+#undef ObjectNameInformation
#define ObjectNameInformation 1
+#undef ProcessIoPriority
+#define ProcessIoPriority 33
+#undef ProcessWow64Information
+#define ProcessWow64Information 26
-/*
- * ================================================================
- * Enums.
- * ================================================================
- */
+// process suspend() / resume()
+typedef enum _KTHREAD_STATE {
+ Initialized,
+ Ready,
+ Running,
+ Standby,
+ Terminated,
+ Waiting,
+ Transition,
+ DeferredReady,
+ GateWait,
+ MaximumThreadState
+} KTHREAD_STATE, *PKTHREAD_STATE;
-typedef enum _PROCESSINFOCLASS2 {
- _ProcessBasicInformation,
- ProcessQuotaLimits,
- ProcessIoCounters,
- ProcessVmCounters,
- ProcessTimes,
- ProcessBasePriority,
- ProcessRaisePriority,
- _ProcessDebugPort,
- ProcessExceptionPort,
- ProcessAccessToken,
- ProcessLdtInformation,
- ProcessLdtSize,
- ProcessDefaultHardErrorMode,
- ProcessIoPortHandlers,
- ProcessPooledUsageAndLimits,
- ProcessWorkingSetWatch,
- ProcessUserModeIOPL,
- ProcessEnableAlignmentFaultFixup,
- ProcessPriorityClass,
- ProcessWx86Information,
- ProcessHandleCount,
- ProcessAffinityMask,
- ProcessPriorityBoost,
- ProcessDeviceMap,
- ProcessSessionInformation,
- ProcessForegroundInformation,
- _ProcessWow64Information,
- /* added after XP+ */
- _ProcessImageFileName,
- ProcessLUIDDeviceMapsEnabled,
- _ProcessBreakOnTermination,
- ProcessDebugObjectHandle,
- ProcessDebugFlags,
- ProcessHandleTracing,
- ProcessIoPriority,
- ProcessExecuteFlags,
- ProcessResourceManagement,
- ProcessCookie,
- ProcessImageInformation,
- MaxProcessInfoClass
-} PROCESSINFOCLASS2;
-
-#define PROCESSINFOCLASS PROCESSINFOCLASS2
-#define ProcessBasicInformation _ProcessBasicInformation
-#define ProcessWow64Information _ProcessWow64Information
-#define ProcessDebugPort _ProcessDebugPort
-#define ProcessImageFileName _ProcessImageFileName
-#define ProcessBreakOnTermination _ProcessBreakOnTermination
+typedef enum _KWAIT_REASON {
+ Executive,
+ FreePage,
+ PageIn,
+ PoolAllocation,
+ DelayExecution,
+ Suspended,
+ UserRequest,
+ WrExecutive,
+ WrFreePage,
+ WrPageIn,
+ WrPoolAllocation,
+ WrDelayExecution,
+ WrSuspended,
+ WrUserRequest,
+ WrEventPair,
+ WrQueue,
+ WrLpcReceive,
+ WrLpcReply,
+ WrVirtualMemory,
+ WrPageOut,
+ WrRendezvous,
+ WrKeyedEvent,
+ WrTerminated,
+ WrProcessInSwap,
+ WrCpuRateControl,
+ WrCalloutStack,
+ WrKernel,
+ WrResource,
+ WrPushLock,
+ WrMutex,
+ WrQuantumEnd,
+ WrDispatchInt,
+ WrPreempted,
+ WrYieldExecution,
+ WrFastMutex,
+ WrGuardedMutex,
+ WrRundown,
+ WrAlertByThreadId,
+ WrDeferredPreempt,
+ MaximumWaitReason
+} KWAIT_REASON, *PKWAIT_REASON;
-/*
- * ================================================================
- * Structs.
- * ================================================================
- */
+// ================================================================
+// Structs.
+// ================================================================
+// cpu_stats(), per_cpu_times()
typedef struct {
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
@@ -92,6 +105,7 @@ typedef struct {
ULONG InterruptCount;
} _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
+// cpu_stats()
typedef struct {
LARGE_INTEGER IdleProcessTime;
LARGE_INTEGER IoReadTransferCount;
@@ -169,6 +183,7 @@ typedef struct {
ULONG SystemCalls;
} _SYSTEM_PERFORMANCE_INFORMATION;
+// cpu_stats()
typedef struct {
ULONG ContextSwitches;
ULONG DpcCount;
@@ -178,62 +193,6 @@ typedef struct {
ULONG ApcBypassCount;
} _SYSTEM_INTERRUPT_INFORMATION;
-typedef enum _KTHREAD_STATE {
- Initialized,
- Ready,
- Running,
- Standby,
- Terminated,
- Waiting,
- Transition,
- DeferredReady,
- GateWait,
- MaximumThreadState
-} KTHREAD_STATE, *PKTHREAD_STATE;
-
-typedef enum _KWAIT_REASON {
- Executive,
- FreePage,
- PageIn,
- PoolAllocation,
- DelayExecution,
- Suspended,
- UserRequest,
- WrExecutive,
- WrFreePage,
- WrPageIn,
- WrPoolAllocation,
- WrDelayExecution,
- WrSuspended,
- WrUserRequest,
- WrEventPair,
- WrQueue,
- WrLpcReceive,
- WrLpcReply,
- WrVirtualMemory,
- WrPageOut,
- WrRendezvous,
- WrKeyedEvent,
- WrTerminated,
- WrProcessInSwap,
- WrCpuRateControl,
- WrCalloutStack,
- WrKernel,
- WrResource,
- WrPushLock,
- WrMutex,
- WrQuantumEnd,
- WrDispatchInt,
- WrPreempted,
- WrYieldExecution,
- WrFastMutex,
- WrGuardedMutex,
- WrRundown,
- WrAlertByThreadId,
- WrDeferredPreempt,
- MaximumWaitReason
-} KWAIT_REASON, *PKWAIT_REASON;
-
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX {
PVOID Object;
HANDLE UniqueProcessId;
@@ -276,19 +235,6 @@ typedef struct _SYSTEM_THREAD_INFORMATION2 {
#define SYSTEM_THREAD_INFORMATION SYSTEM_THREAD_INFORMATION2
#define PSYSTEM_THREAD_INFORMATION PSYSTEM_THREAD_INFORMATION2
-typedef struct _TEB *PTEB;
-
-typedef struct _SYSTEM_EXTENDED_THREAD_INFORMATION {
- SYSTEM_THREAD_INFORMATION ThreadInfo;
- PVOID StackBase;
- PVOID StackLimit;
- PVOID Win32StartAddress;
- PTEB TebBase;
- ULONG_PTR Reserved2;
- ULONG_PTR Reserved3;
- ULONG_PTR Reserved4;
-} SYSTEM_EXTENDED_THREAD_INFORMATION, *PSYSTEM_EXTENDED_THREAD_INFORMATION;
-
typedef struct _SYSTEM_PROCESS_INFORMATION2 {
ULONG NextEntryOffset;
ULONG NumberOfThreads;
@@ -329,6 +275,7 @@ typedef struct _SYSTEM_PROCESS_INFORMATION2 {
#define SYSTEM_PROCESS_INFORMATION SYSTEM_PROCESS_INFORMATION2
#define PSYSTEM_PROCESS_INFORMATION PSYSTEM_PROCESS_INFORMATION2
+// cpu_freq()
typedef struct _PROCESSOR_POWER_INFORMATION {
ULONG Number;
ULONG MaxMhz;
@@ -347,7 +294,7 @@ typedef struct in6_addr {
} IN6_ADDR, *PIN6_ADDR, FAR *LPIN6_ADDR;
#endif
-// http://msdn.microsoft.com/en-us/library/aa813741(VS.85).aspx
+// PEB / cmdline(), cwd(), environ()
typedef struct {
BYTE Reserved1[16];
PVOID Reserved2[5];
@@ -359,6 +306,7 @@ typedef struct {
LPCWSTR env;
} RTL_USER_PROCESS_PARAMETERS_, *PRTL_USER_PROCESS_PARAMETERS_;
+// users()
typedef struct _WINSTATION_INFO {
BYTE Reserved1[72];
ULONG SessionId;
@@ -371,6 +319,7 @@ typedef struct _WINSTATION_INFO {
FILETIME CurrentTime;
} WINSTATION_INFO, *PWINSTATION_INFO;
+// cpu_count_phys()
#if (_WIN32_WINNT < 0x0601) // Windows < 7 (Vista and XP)
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
@@ -385,6 +334,7 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
#endif
+// memory_uss()
typedef struct _MEMORY_WORKING_SET_BLOCK {
ULONG_PTR Protection : 5;
ULONG_PTR ShareCount : 3;
@@ -397,11 +347,13 @@ typedef struct _MEMORY_WORKING_SET_BLOCK {
#endif
} MEMORY_WORKING_SET_BLOCK, *PMEMORY_WORKING_SET_BLOCK;
+// memory_uss()
typedef struct _MEMORY_WORKING_SET_INFORMATION {
ULONG_PTR NumberOfEntries;
MEMORY_WORKING_SET_BLOCK WorkingSetInfo[1];
} MEMORY_WORKING_SET_INFORMATION, *PMEMORY_WORKING_SET_INFORMATION;
+// memory_uss()
typedef struct _PSUTIL_PROCESS_WS_COUNTERS {
SIZE_T NumberOfPages;
SIZE_T NumberOfPrivatePages;
@@ -409,11 +361,9 @@ typedef struct _PSUTIL_PROCESS_WS_COUNTERS {
SIZE_T NumberOfShareablePages;
} PSUTIL_PROCESS_WS_COUNTERS, *PPSUTIL_PROCESS_WS_COUNTERS;
-/*
- * ================================================================
- * Type defs for modules loaded at runtime.
- * ================================================================
- */
+// ================================================================
+// Type defs for modules loaded at runtime.
+// ================================================================
typedef BOOL (WINAPI *_GetLogicalProcessorInformationEx)(
LOGICAL_PROCESSOR_RELATIONSHIP relationship,