ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pstypes.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.