OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * $Id: ntextapi.h 1142 2011-10-05 18:45:49Z g.rodola $ |
| 3 * |
| 4 * Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. |
| 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. |
| 7 * |
| 8 */ |
| 9 |
| 10 typedef enum _KTHREAD_STATE |
| 11 { |
| 12 Initialized, |
| 13 Ready, |
| 14 Running, |
| 15 Standby, |
| 16 Terminated, |
| 17 Waiting, |
| 18 Transition, |
| 19 DeferredReady, |
| 20 GateWait, |
| 21 MaximumThreadState |
| 22 } KTHREAD_STATE, *PKTHREAD_STATE; |
| 23 |
| 24 typedef enum _KWAIT_REASON |
| 25 { |
| 26 Executive = 0, |
| 27 FreePage = 1, |
| 28 PageIn = 2, |
| 29 PoolAllocation = 3, |
| 30 DelayExecution = 4, |
| 31 Suspended = 5, |
| 32 UserRequest = 6, |
| 33 WrExecutive = 7, |
| 34 WrFreePage = 8, |
| 35 WrPageIn = 9, |
| 36 WrPoolAllocation = 10, |
| 37 WrDelayExecution = 11, |
| 38 WrSuspended = 12, |
| 39 WrUserRequest = 13, |
| 40 WrEventPair = 14, |
| 41 WrQueue = 15, |
| 42 WrLpcReceive = 16, |
| 43 WrLpcReply = 17, |
| 44 WrVirtualMemory = 18, |
| 45 WrPageOut = 19, |
| 46 WrRendezvous = 20, |
| 47 Spare2 = 21, |
| 48 Spare3 = 22, |
| 49 Spare4 = 23, |
| 50 Spare5 = 24, |
| 51 WrCalloutStack = 25, |
| 52 WrKernel = 26, |
| 53 WrResource = 27, |
| 54 WrPushLock = 28, |
| 55 WrMutex = 29, |
| 56 WrQuantumEnd = 30, |
| 57 WrDispatchInt = 31, |
| 58 WrPreempted = 32, |
| 59 WrYieldExecution = 33, |
| 60 WrFastMutex = 34, |
| 61 WrGuardedMutex = 35, |
| 62 WrRundown = 36, |
| 63 MaximumWaitReason = 37 |
| 64 } KWAIT_REASON, *PKWAIT_REASON; |
| 65 |
| 66 |
| 67 typedef struct _CLIENT_ID |
| 68 { |
| 69 HANDLE UniqueProcess; |
| 70 HANDLE UniqueThread; |
| 71 } CLIENT_ID, *PCLIENT_ID; |
| 72 |
| 73 |
| 74 typedef struct _UNICODE_STRING { |
| 75 USHORT Length; |
| 76 USHORT MaximumLength; |
| 77 PWSTR Buffer; |
| 78 } UNICODE_STRING, *PUNICODE_STRING; |
| 79 |
| 80 |
| 81 typedef struct _SYSTEM_TIMEOFDAY_INFORMATION |
| 82 { |
| 83 LARGE_INTEGER BootTime; |
| 84 LARGE_INTEGER CurrentTime; |
| 85 LARGE_INTEGER TimeZoneBias; |
| 86 ULONG TimeZoneId; |
| 87 ULONG Reserved; |
| 88 ULONGLONG BootTimeBias; |
| 89 ULONGLONG SleepTimeBias; |
| 90 } SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION; |
| 91 |
| 92 typedef struct _SYSTEM_THREAD_INFORMATION |
| 93 { |
| 94 LARGE_INTEGER KernelTime; |
| 95 LARGE_INTEGER UserTime; |
| 96 LARGE_INTEGER CreateTime; |
| 97 ULONG WaitTime; |
| 98 PVOID StartAddress; |
| 99 CLIENT_ID ClientId; |
| 100 LONG Priority; |
| 101 LONG BasePriority; |
| 102 ULONG ContextSwitches; |
| 103 ULONG ThreadState; |
| 104 KWAIT_REASON WaitReason; |
| 105 } SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION; |
| 106 |
| 107 typedef struct _TEB *PTEB; |
| 108 |
| 109 // private |
| 110 typedef struct _SYSTEM_EXTENDED_THREAD_INFORMATION |
| 111 { |
| 112 SYSTEM_THREAD_INFORMATION ThreadInfo; |
| 113 PVOID StackBase; |
| 114 PVOID StackLimit; |
| 115 PVOID Win32StartAddress; |
| 116 PTEB TebBase; |
| 117 ULONG_PTR Reserved2; |
| 118 ULONG_PTR Reserved3; |
| 119 ULONG_PTR Reserved4; |
| 120 } SYSTEM_EXTENDED_THREAD_INFORMATION, *PSYSTEM_EXTENDED_THREAD_INFORMATION; |
| 121 |
| 122 typedef struct _SYSTEM_PROCESS_INFORMATION |
| 123 { |
| 124 ULONG NextEntryOffset; |
| 125 ULONG NumberOfThreads; |
| 126 LARGE_INTEGER SpareLi1; |
| 127 LARGE_INTEGER SpareLi2; |
| 128 LARGE_INTEGER SpareLi3; |
| 129 LARGE_INTEGER CreateTime; |
| 130 LARGE_INTEGER UserTime; |
| 131 LARGE_INTEGER KernelTime; |
| 132 UNICODE_STRING ImageName; |
| 133 LONG BasePriority; |
| 134 HANDLE UniqueProcessId; |
| 135 HANDLE InheritedFromUniqueProcessId; |
| 136 ULONG HandleCount; |
| 137 ULONG SessionId; |
| 138 ULONG_PTR PageDirectoryBase; |
| 139 SIZE_T PeakVirtualSize; |
| 140 SIZE_T VirtualSize; |
| 141 ULONG PageFaultCount; |
| 142 SIZE_T PeakWorkingSetSize; |
| 143 SIZE_T WorkingSetSize; |
| 144 SIZE_T QuotaPeakPagedPoolUsage; |
| 145 SIZE_T QuotaPagedPoolUsage; |
| 146 SIZE_T QuotaPeakNonPagedPoolUsage; |
| 147 SIZE_T QuotaNonPagedPoolUsage; |
| 148 SIZE_T PagefileUsage; |
| 149 SIZE_T PeakPagefileUsage; |
| 150 SIZE_T PrivatePageCount; |
| 151 LARGE_INTEGER ReadOperationCount; |
| 152 LARGE_INTEGER WriteOperationCount; |
| 153 LARGE_INTEGER OtherOperationCount; |
| 154 LARGE_INTEGER ReadTransferCount; |
| 155 LARGE_INTEGER WriteTransferCount; |
| 156 LARGE_INTEGER OtherTransferCount; |
| 157 SYSTEM_THREAD_INFORMATION Threads[1]; |
| 158 } SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION; |
| 159 |
| 160 |
| 161 // structures and enums from winternl.h (not available under mingw) |
| 162 typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { |
| 163 LARGE_INTEGER IdleTime; |
| 164 LARGE_INTEGER KernelTime; |
| 165 LARGE_INTEGER UserTime; |
| 166 LARGE_INTEGER Reserved1[2]; |
| 167 ULONG Reserved2; |
| 168 } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFOR
MATION; |
| 169 |
| 170 |
| 171 typedef enum _SYSTEM_INFORMATION_CLASS { |
| 172 SystemBasicInformation = 0, |
| 173 SystemPerformanceInformation = 2, |
| 174 SystemTimeOfDayInformation = 3, |
| 175 SystemProcessInformation = 5, |
| 176 SystemProcessorPerformanceInformation = 8, |
| 177 SystemInterruptInformation = 23, |
| 178 SystemExceptionInformation = 33, |
| 179 SystemRegistryQuotaInformation = 37, |
| 180 SystemLookasideInformation = 45 |
| 181 } SYSTEM_INFORMATION_CLASS; |
| 182 |
| 183 |
OLD | NEW |