Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpstypes.h
Go to the documentation of this file.
00001 /****************************************************************************** 00002 * Process Manager Types * 00003 ******************************************************************************/ 00004 $if (_WDMDDK_) 00005 00006 #define QUOTA_LIMITS_HARDWS_MIN_ENABLE 0x00000001 00007 #define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002 00008 #define QUOTA_LIMITS_HARDWS_MAX_ENABLE 0x00000004 00009 #define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008 00010 #define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010 00011 00012 /* Thread Access Rights */ 00013 #define THREAD_TERMINATE 0x0001 00014 #define THREAD_SUSPEND_RESUME 0x0002 00015 #define THREAD_ALERT 0x0004 00016 #define THREAD_GET_CONTEXT 0x0008 00017 #define THREAD_SET_CONTEXT 0x0010 00018 #define THREAD_SET_INFORMATION 0x0020 00019 #define THREAD_SET_LIMITED_INFORMATION 0x0400 00020 #define THREAD_QUERY_LIMITED_INFORMATION 0x0800 00021 00022 #define PROCESS_DUP_HANDLE (0x0040) 00023 00024 #if (NTDDI_VERSION >= NTDDI_VISTA) 00025 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF) 00026 #else 00027 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF) 00028 #endif 00029 00030 #if (NTDDI_VERSION >= NTDDI_VISTA) 00031 #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF) 00032 #else 00033 #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF) 00034 #endif 00035 00036 #define LOW_PRIORITY 0 00037 #define LOW_REALTIME_PRIORITY 16 00038 #define HIGH_PRIORITY 31 00039 #define MAXIMUM_PRIORITY 32 00040 00041 $endif (_WDMDDK_) 00042 $if (_NTDDK_) 00043 00044 #define QUOTA_LIMITS_HARDWS_MIN_ENABLE 0x00000001 00045 #define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002 00046 #define QUOTA_LIMITS_HARDWS_MAX_ENABLE 0x00000004 00047 #define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008 00048 #define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010 00049 00050 typedef struct _QUOTA_LIMITS { 00051 SIZE_T PagedPoolLimit; 00052 SIZE_T NonPagedPoolLimit; 00053 SIZE_T MinimumWorkingSetSize; 00054 SIZE_T MaximumWorkingSetSize; 00055 SIZE_T PagefileLimit; 00056 LARGE_INTEGER TimeLimit; 00057 } QUOTA_LIMITS, *PQUOTA_LIMITS; 00058 00059 typedef union _RATE_QUOTA_LIMIT { 00060 ULONG RateData; 00061 _ANONYMOUS_STRUCT struct { 00062 ULONG RatePercent:7; 00063 ULONG Reserved0:25; 00064 } DUMMYSTRUCTNAME; 00065 } RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT; 00066 00067 typedef struct _QUOTA_LIMITS_EX { 00068 SIZE_T PagedPoolLimit; 00069 SIZE_T NonPagedPoolLimit; 00070 SIZE_T MinimumWorkingSetSize; 00071 SIZE_T MaximumWorkingSetSize; 00072 SIZE_T PagefileLimit; 00073 LARGE_INTEGER TimeLimit; 00074 SIZE_T WorkingSetLimit; 00075 SIZE_T Reserved2; 00076 SIZE_T Reserved3; 00077 SIZE_T Reserved4; 00078 ULONG Flags; 00079 RATE_QUOTA_LIMIT CpuRateLimit; 00080 } QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX; 00081 00082 typedef struct _IO_COUNTERS { 00083 ULONGLONG ReadOperationCount; 00084 ULONGLONG WriteOperationCount; 00085 ULONGLONG OtherOperationCount; 00086 ULONGLONG ReadTransferCount; 00087 ULONGLONG WriteTransferCount; 00088 ULONGLONG OtherTransferCount; 00089 } IO_COUNTERS, *PIO_COUNTERS; 00090 00091 typedef struct _VM_COUNTERS { 00092 SIZE_T PeakVirtualSize; 00093 SIZE_T VirtualSize; 00094 ULONG PageFaultCount; 00095 SIZE_T PeakWorkingSetSize; 00096 SIZE_T WorkingSetSize; 00097 SIZE_T QuotaPeakPagedPoolUsage; 00098 SIZE_T QuotaPagedPoolUsage; 00099 SIZE_T QuotaPeakNonPagedPoolUsage; 00100 SIZE_T QuotaNonPagedPoolUsage; 00101 SIZE_T PagefileUsage; 00102 SIZE_T PeakPagefileUsage; 00103 } VM_COUNTERS, *PVM_COUNTERS; 00104 00105 typedef struct _VM_COUNTERS_EX { 00106 SIZE_T PeakVirtualSize; 00107 SIZE_T VirtualSize; 00108 ULONG PageFaultCount; 00109 SIZE_T PeakWorkingSetSize; 00110 SIZE_T WorkingSetSize; 00111 SIZE_T QuotaPeakPagedPoolUsage; 00112 SIZE_T QuotaPagedPoolUsage; 00113 SIZE_T QuotaPeakNonPagedPoolUsage; 00114 SIZE_T QuotaNonPagedPoolUsage; 00115 SIZE_T PagefileUsage; 00116 SIZE_T PeakPagefileUsage; 00117 SIZE_T PrivateUsage; 00118 } VM_COUNTERS_EX, *PVM_COUNTERS_EX; 00119 00120 #define MAX_HW_COUNTERS 16 00121 #define THREAD_PROFILING_FLAG_DISPATCH 0x00000001 00122 00123 typedef enum _HARDWARE_COUNTER_TYPE { 00124 PMCCounter, 00125 MaxHardwareCounterType 00126 } HARDWARE_COUNTER_TYPE, *PHARDWARE_COUNTER_TYPE; 00127 00128 typedef struct _HARDWARE_COUNTER { 00129 HARDWARE_COUNTER_TYPE Type; 00130 ULONG Reserved; 00131 ULONG64 Index; 00132 } HARDWARE_COUNTER, *PHARDWARE_COUNTER; 00133 00134 typedef struct _POOLED_USAGE_AND_LIMITS { 00135 SIZE_T PeakPagedPoolUsage; 00136 SIZE_T PagedPoolUsage; 00137 SIZE_T PagedPoolLimit; 00138 SIZE_T PeakNonPagedPoolUsage; 00139 SIZE_T NonPagedPoolUsage; 00140 SIZE_T NonPagedPoolLimit; 00141 SIZE_T PeakPagefileUsage; 00142 SIZE_T PagefileUsage; 00143 SIZE_T PagefileLimit; 00144 } POOLED_USAGE_AND_LIMITS, *PPOOLED_USAGE_AND_LIMITS; 00145 00146 typedef struct _PROCESS_ACCESS_TOKEN { 00147 HANDLE Token; 00148 HANDLE Thread; 00149 } PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN; 00150 00151 #define PROCESS_EXCEPTION_PORT_ALL_STATE_BITS 0x00000003UL 00152 #define PROCESS_EXCEPTION_PORT_ALL_STATE_FLAGS ((ULONG_PTR)((1UL << PROCESS_EXCEPTION_PORT_ALL_STATE_BITS) - 1)) 00153 00154 typedef struct _PROCESS_EXCEPTION_PORT { 00155 _In_ HANDLE ExceptionPortHandle; 00156 _Inout_ ULONG StateFlags; 00157 } PROCESS_EXCEPTION_PORT, *PPROCESS_EXCEPTION_PORT; 00158 00159 typedef VOID 00160 (NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)( 00161 _In_ HANDLE ParentId, 00162 _In_ HANDLE ProcessId, 00163 _In_ BOOLEAN Create); 00164 00165 typedef struct _PS_CREATE_NOTIFY_INFO { 00166 _In_ SIZE_T Size; 00167 _ANONYMOUS_UNION union { 00168 _In_ ULONG Flags; 00169 _ANONYMOUS_STRUCT struct { 00170 _In_ ULONG FileOpenNameAvailable:1; 00171 _In_ ULONG Reserved:31; 00172 } DUMMYSTRUCTNAME; 00173 } DUMMYUNIONNAME; 00174 _In_ HANDLE ParentProcessId; 00175 _In_ CLIENT_ID CreatingThreadId; 00176 _Inout_ struct _FILE_OBJECT *FileObject; 00177 _In_ PCUNICODE_STRING ImageFileName; 00178 _In_opt_ PCUNICODE_STRING CommandLine; 00179 _Inout_ NTSTATUS CreationStatus; 00180 } PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO; 00181 00182 typedef VOID 00183 (NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE_EX)( 00184 _Inout_ PEPROCESS Process, 00185 _In_ HANDLE ProcessId, 00186 _Inout_opt_ PPS_CREATE_NOTIFY_INFO CreateInfo); 00187 00188 typedef VOID 00189 (NTAPI *PCREATE_THREAD_NOTIFY_ROUTINE)( 00190 _In_ HANDLE ProcessId, 00191 _In_ HANDLE ThreadId, 00192 _In_ BOOLEAN Create); 00193 00194 #define IMAGE_ADDRESSING_MODE_32BIT 3 00195 00196 typedef struct _IMAGE_INFO { 00197 _ANONYMOUS_UNION union { 00198 ULONG Properties; 00199 _ANONYMOUS_STRUCT struct { 00200 ULONG ImageAddressingMode:8; 00201 ULONG SystemModeImage:1; 00202 ULONG ImageMappedToAllPids:1; 00203 ULONG ExtendedInfoPresent:1; 00204 ULONG Reserved:21; 00205 } DUMMYSTRUCTNAME; 00206 } DUMMYUNIONNAME; 00207 PVOID ImageBase; 00208 ULONG ImageSelector; 00209 SIZE_T ImageSize; 00210 ULONG ImageSectionNumber; 00211 } IMAGE_INFO, *PIMAGE_INFO; 00212 00213 typedef struct _IMAGE_INFO_EX { 00214 SIZE_T Size; 00215 IMAGE_INFO ImageInfo; 00216 struct _FILE_OBJECT *FileObject; 00217 } IMAGE_INFO_EX, *PIMAGE_INFO_EX; 00218 00219 typedef VOID 00220 (NTAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)( 00221 _In_ PUNICODE_STRING FullImageName, 00222 _In_ HANDLE ProcessId, 00223 _In_ PIMAGE_INFO ImageInfo); 00224 00225 #define THREAD_CSWITCH_PMU_DISABLE FALSE 00226 #define THREAD_CSWITCH_PMU_ENABLE TRUE 00227 00228 #define PROCESS_LUID_DOSDEVICES_ONLY 0x00000001 00229 00230 #define PROCESS_HANDLE_TRACING_MAX_STACKS 16 00231 00232 typedef struct _NT_TIB { 00233 struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; 00234 PVOID StackBase; 00235 PVOID StackLimit; 00236 PVOID SubSystemTib; 00237 _ANONYMOUS_UNION union { 00238 PVOID FiberData; 00239 ULONG Version; 00240 } DUMMYUNIONNAME; 00241 PVOID ArbitraryUserPointer; 00242 struct _NT_TIB *Self; 00243 } NT_TIB, *PNT_TIB; 00244 00245 typedef struct _NT_TIB32 { 00246 ULONG ExceptionList; 00247 ULONG StackBase; 00248 ULONG StackLimit; 00249 ULONG SubSystemTib; 00250 _ANONYMOUS_UNION union { 00251 ULONG FiberData; 00252 ULONG Version; 00253 } DUMMYUNIONNAME; 00254 ULONG ArbitraryUserPointer; 00255 ULONG Self; 00256 } NT_TIB32,*PNT_TIB32; 00257 00258 typedef struct _NT_TIB64 { 00259 ULONG64 ExceptionList; 00260 ULONG64 StackBase; 00261 ULONG64 StackLimit; 00262 ULONG64 SubSystemTib; 00263 _ANONYMOUS_UNION union { 00264 ULONG64 FiberData; 00265 ULONG Version; 00266 } DUMMYUNIONNAME; 00267 ULONG64 ArbitraryUserPointer; 00268 ULONG64 Self; 00269 } NT_TIB64,*PNT_TIB64; 00270 00271 typedef enum _PROCESSINFOCLASS { 00272 ProcessBasicInformation, 00273 ProcessQuotaLimits, 00274 ProcessIoCounters, 00275 ProcessVmCounters, 00276 ProcessTimes, 00277 ProcessBasePriority, 00278 ProcessRaisePriority, 00279 ProcessDebugPort, 00280 ProcessExceptionPort, 00281 ProcessAccessToken, 00282 ProcessLdtInformation, 00283 ProcessLdtSize, 00284 ProcessDefaultHardErrorMode, 00285 ProcessIoPortHandlers, 00286 ProcessPooledUsageAndLimits, 00287 ProcessWorkingSetWatch, 00288 ProcessUserModeIOPL, 00289 ProcessEnableAlignmentFaultFixup, 00290 ProcessPriorityClass, 00291 ProcessWx86Information, 00292 ProcessHandleCount, 00293 ProcessAffinityMask, 00294 ProcessPriorityBoost, 00295 ProcessDeviceMap, 00296 ProcessSessionInformation, 00297 ProcessForegroundInformation, 00298 ProcessWow64Information, 00299 ProcessImageFileName, 00300 ProcessLUIDDeviceMapsEnabled, 00301 ProcessBreakOnTermination, 00302 ProcessDebugObjectHandle, 00303 ProcessDebugFlags, 00304 ProcessHandleTracing, 00305 ProcessIoPriority, 00306 ProcessExecuteFlags, 00307 ProcessTlsInformation, 00308 ProcessCookie, 00309 ProcessImageInformation, 00310 ProcessCycleTime, 00311 ProcessPagePriority, 00312 ProcessInstrumentationCallback, 00313 ProcessThreadStackAllocation, 00314 ProcessWorkingSetWatchEx, 00315 ProcessImageFileNameWin32, 00316 ProcessImageFileMapping, 00317 ProcessAffinityUpdateMode, 00318 ProcessMemoryAllocationMode, 00319 ProcessGroupInformation, 00320 ProcessTokenVirtualizationEnabled, 00321 ProcessConsoleHostProcess, 00322 ProcessWindowInformation, 00323 MaxProcessInfoClass 00324 } PROCESSINFOCLASS; 00325 00326 typedef enum _THREADINFOCLASS { 00327 ThreadBasicInformation, 00328 ThreadTimes, 00329 ThreadPriority, 00330 ThreadBasePriority, 00331 ThreadAffinityMask, 00332 ThreadImpersonationToken, 00333 ThreadDescriptorTableEntry, 00334 ThreadEnableAlignmentFaultFixup, 00335 ThreadEventPair_Reusable, 00336 ThreadQuerySetWin32StartAddress, 00337 ThreadZeroTlsCell, 00338 ThreadPerformanceCount, 00339 ThreadAmILastThread, 00340 ThreadIdealProcessor, 00341 ThreadPriorityBoost, 00342 ThreadSetTlsArrayAddress, 00343 ThreadIsIoPending, 00344 ThreadHideFromDebugger, 00345 ThreadBreakOnTermination, 00346 ThreadSwitchLegacyState, 00347 ThreadIsTerminated, 00348 ThreadLastSystemCall, 00349 ThreadIoPriority, 00350 ThreadCycleTime, 00351 ThreadPagePriority, 00352 ThreadActualBasePriority, 00353 ThreadTebInformation, 00354 ThreadCSwitchMon, 00355 ThreadCSwitchPmu, 00356 ThreadWow64Context, 00357 ThreadGroupInformation, 00358 ThreadUmsInformation, 00359 ThreadCounterProfiling, 00360 ThreadIdealProcessorEx, 00361 MaxThreadInfoClass 00362 } THREADINFOCLASS; 00363 00364 typedef struct _PAGE_PRIORITY_INFORMATION { 00365 ULONG PagePriority; 00366 } PAGE_PRIORITY_INFORMATION, *PPAGE_PRIORITY_INFORMATION; 00367 00368 typedef struct _PROCESS_WS_WATCH_INFORMATION { 00369 PVOID FaultingPc; 00370 PVOID FaultingVa; 00371 } PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION; 00372 00373 typedef struct _PROCESS_BASIC_INFORMATION { 00374 NTSTATUS ExitStatus; 00375 struct _PEB *PebBaseAddress; 00376 ULONG_PTR AffinityMask; 00377 KPRIORITY BasePriority; 00378 ULONG_PTR UniqueProcessId; 00379 ULONG_PTR InheritedFromUniqueProcessId; 00380 } PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION; 00381 00382 typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION { 00383 SIZE_T Size; 00384 PROCESS_BASIC_INFORMATION BasicInfo; 00385 _ANONYMOUS_UNION union { 00386 ULONG Flags; 00387 _ANONYMOUS_STRUCT struct { 00388 ULONG IsProtectedProcess:1; 00389 ULONG IsWow64Process:1; 00390 ULONG IsProcessDeleting:1; 00391 ULONG IsCrossSessionCreate:1; 00392 ULONG SpareBits:28; 00393 } DUMMYSTRUCTNAME; 00394 } DUMMYUNIONNAME; 00395 } PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION; 00396 00397 typedef struct _PROCESS_DEVICEMAP_INFORMATION { 00398 _ANONYMOUS_UNION union { 00399 struct { 00400 HANDLE DirectoryHandle; 00401 } Set; 00402 struct { 00403 ULONG DriveMap; 00404 UCHAR DriveType[32]; 00405 } Query; 00406 } DUMMYUNIONNAME; 00407 } PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION; 00408 00409 typedef struct _PROCESS_DEVICEMAP_INFORMATION_EX { 00410 _ANONYMOUS_UNION union { 00411 struct { 00412 HANDLE DirectoryHandle; 00413 } Set; 00414 struct { 00415 ULONG DriveMap; 00416 UCHAR DriveType[32]; 00417 } Query; 00418 } DUMMYUNIONNAME; 00419 ULONG Flags; 00420 } PROCESS_DEVICEMAP_INFORMATION_EX, *PPROCESS_DEVICEMAP_INFORMATION_EX; 00421 00422 typedef struct _PROCESS_SESSION_INFORMATION { 00423 ULONG SessionId; 00424 } PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION; 00425 00426 typedef struct _PROCESS_HANDLE_TRACING_ENABLE { 00427 ULONG Flags; 00428 } PROCESS_HANDLE_TRACING_ENABLE, *PPROCESS_HANDLE_TRACING_ENABLE; 00429 00430 typedef struct _PROCESS_HANDLE_TRACING_ENABLE_EX { 00431 ULONG Flags; 00432 ULONG TotalSlots; 00433 } PROCESS_HANDLE_TRACING_ENABLE_EX, *PPROCESS_HANDLE_TRACING_ENABLE_EX; 00434 00435 typedef struct _PROCESS_HANDLE_TRACING_ENTRY { 00436 HANDLE Handle; 00437 CLIENT_ID ClientId; 00438 ULONG Type; 00439 PVOID Stacks[PROCESS_HANDLE_TRACING_MAX_STACKS]; 00440 } PROCESS_HANDLE_TRACING_ENTRY, *PPROCESS_HANDLE_TRACING_ENTRY; 00441 00442 typedef struct _PROCESS_HANDLE_TRACING_QUERY { 00443 HANDLE Handle; 00444 ULONG TotalTraces; 00445 PROCESS_HANDLE_TRACING_ENTRY HandleTrace[1]; 00446 } PROCESS_HANDLE_TRACING_QUERY, *PPROCESS_HANDLE_TRACING_QUERY; 00447 00448 extern NTKERNELAPI PEPROCESS PsInitialSystemProcess; 00449 00450 $endif (_NTDDK_) 00451 Generated on Sat May 26 2012 04:29:43 for ReactOS by
1.7.6.1
|