- Add RtlSetProcessCritical
[reactos.git] / reactos / include / ndk / pstypes.h
index a666dce..d5cb503 100644 (file)
@@ -13,7 +13,7 @@
 #include "ldrtypes.h"
 #include "mmtypes.h"
 #include "obtypes.h"
-#include "extypes.h"
+//#include "extypes.h"
 #ifndef NTOS_MODE_USER
 #include "setypes.h"
 #endif
@@ -56,6 +56,11 @@ extern NTSYSAPI POBJECT_TYPE PsProcessType;
 #define PROCESS_PRIORITY_CLASS_BELOW_NORMAL     5
 #define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL     6
 
+/* Process base priorities */
+#define PROCESS_PRIORITY_IDLE                   3
+#define PROCESS_PRIORITY_NORMAL                 8
+#define PROCESS_PRIORITY_NORMAL_FOREGROUND      9
+
 /* Global Flags */
 #define FLG_STOP_ON_EXCEPTION          0x00000001
 #define FLG_SHOW_LDR_SNAPS             0x00000002
@@ -123,6 +128,14 @@ typedef enum _PROCESSINFOCLASS
     ProcessDebugObjectHandle,
     ProcessDebugFlags,
     ProcessHandleTracing,
+    ProcessIoPriority,
+    ProcessExecuteFlags,
+    ProcessTlsInformation,
+    ProcessCookie,
+    ProcessImageInformation,
+    ProcessCycleTime,
+    ProcessPagePriority,
+    ProcessInstrumentationCallback,
     MaxProcessInfoClass
 } PROCESSINFOCLASS;
 
@@ -147,10 +160,34 @@ typedef enum _THREADINFOCLASS
     ThreadIsIoPending,
     ThreadHideFromDebugger,
     ThreadBreakOnTermination,
+    ThreadSwitchLegacyState,
+    ThreadIsTerminated,
+    ThreadLastSystemCall,
+    ThreadIoPriority,
+    ThreadCycleTime,
+    ThreadPagePriority,
+    ThreadActualBasePriority,
     MaxThreadInfoClass
 } THREADINFOCLASS;
 #endif
 
+#ifndef NTOS_MODE_USER
+typedef enum _JOBOBJECTINFOCLASS
+{
+    JobObjectBasicAccountingInformation = 1,
+    JobObjectBasicLimitInformation,
+    JobObjectBasicProcessIdList,
+    JobObjectBasicUIRestrictions,
+    JobObjectSecurityLimitInformation,
+    JobObjectEndOfJobTimeInformation,
+    JobObjectAssociateCompletionPortInformation,
+    JobObjectBasicAndIoAccountingInformation,
+    JobObjectExtendedLimitInformation,
+    JobObjectJobSetInformation,
+    MaxJobObjectInfoClass
+} JOBOBJECTINFOCLASS;
+#endif
+
 /* FUNCTION TYPES ************************************************************/
 typedef VOID (NTAPI *PPEBLOCKROUTINE)(PVOID);
 
@@ -170,6 +207,11 @@ typedef NTSTATUS
 
 /* TYPES *********************************************************************/
 
+struct _W32THREAD;
+struct _W32PROCESS;
+
+struct _ETHREAD;
+
 #ifdef NTOS_MODE_USER
 typedef struct _CLIENT_ID
 {
@@ -178,11 +220,6 @@ typedef struct _CLIENT_ID
 } CLIENT_ID, *PCLIENT_ID;
 #endif
 
-struct _W32THREAD;
-struct _W32PROCESS;
-
-struct _ETHREAD;
-
 typedef struct _DESCRIPTOR_TABLE_ENTRY
 {
     ULONG Selector;
@@ -360,6 +397,69 @@ typedef struct _TEB
     UCHAR BooleanSpare[3];                  /* FB9h */
 } TEB, *PTEB;
 
+#ifdef NTOS_MODE_USER
+typedef struct _PROCESS_BASIC_INFORMATION
+{
+    NTSTATUS ExitStatus;
+    PPEB PebBaseAddress;
+    ULONG_PTR AffinityMask;
+    KPRIORITY BasePriority;
+    ULONG_PTR UniqueProcessId;
+    ULONG_PTR InheritedFromUniqueProcessId;
+} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
+
+typedef struct _PROCESS_ACCESS_TOKEN
+{
+    HANDLE Token;
+    HANDLE Thread;
+} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
+
+typedef struct _PROCESS_DEVICEMAP_INFORMATION
+{
+    union
+    {
+        struct
+        {
+            HANDLE DirectoryHandle;
+        } Set;
+        struct
+        {
+            ULONG DriveMap;
+            UCHAR DriveType[32];
+        } Query;
+    };
+} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
+
+typedef struct _KERNEL_USER_TIMES
+{
+    LARGE_INTEGER CreateTime;
+    LARGE_INTEGER ExitTime;
+    LARGE_INTEGER KernelTime;
+    LARGE_INTEGER UserTime;
+} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
+
+typedef struct _PROCESS_SESSION_INFORMATION
+{
+    ULONG SessionId;
+} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
+#endif
+
+typedef struct _PROCESS_PRIORITY_CLASS
+{
+    BOOLEAN Foreground;
+    UCHAR   PriorityClass;
+} PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;
+
+typedef struct _THREAD_BASIC_INFORMATION
+{
+    NTSTATUS ExitStatus;
+    PVOID TebBaseAddress;
+    CLIENT_ID ClientId;
+    KAFFINITY AffinityMask;
+    KPRIORITY Priority;
+    KPRIORITY BasePriority;
+} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
+
 #ifndef NTOS_MODE_USER
 /* FIXME: see note in mmtypes.h */
 #ifdef _NTOSKRNL_
@@ -399,6 +499,12 @@ typedef struct _PS_IMPERSONATION_INFORMATION
     SECURITY_IMPERSONATION_LEVEL    ImpersonationLevel;
 } PS_IMPERSONATION_INFORMATION, *PPS_IMPERSONATION_INFORMATION;
 
+typedef struct _TERMINATION_PORT
+{
+    struct _TERMINATION_PORT *Next;
+    PVOID Port;
+} TERMINATION_PORT, *PTERMINATION_PORT;
+
 #include <pshpack4.h>
 typedef struct _ETHREAD
 {