CORE-6639 #resolve #time 1d #comment Guard pages now work ;-)
[reactos.git] / reactos / include / ndk / pstypes.h
index 55a43ad..ebe43c0 100644 (file)
@@ -32,6 +32,19 @@ Author:
 #include <setypes.h>
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef NTOS_MODE_USER
+
+//
+// Kernel Exported Object Types
+//
+extern POBJECT_TYPE NTSYSAPI PsJobType;
+
+#endif // !NTOS_MODE_USER
+
 //
 // KUSER_SHARED_DATA location in User Mode
 //
@@ -56,7 +69,7 @@ Author:
 #define FLG_KERNEL_STACK_TRACE_DB               0x00002000
 #define FLG_MAINTAIN_OBJECT_TYPELIST            0x00004000
 #define FLG_HEAP_ENABLE_TAG_BY_DLL              0x00008000
-#define FLG_IGNORE_DEBUG_PRIV                   0x00010000
+#define FLG_DISABLE_STACK_EXTENSION             0x00010000
 #define FLG_ENABLE_CSRDEBUG                     0x00020000
 #define FLG_ENABLE_KDEBUG_SYMBOL_LOAD           0x00040000
 #define FLG_DISABLE_PAGE_KERNEL_STACKS          0x00080000
@@ -76,11 +89,17 @@ Author:
 //
 // Flags for NtCreateProcessEx
 //
-#define PROCESS_CREATE_FLAGS_BREAKAWAY          0x00000001
-#define PROCESS_CREATE_FLAGS_NO_DEBUG_INHERIT   0x00000002
-#define PROCESS_CREATE_FLAGS_INHERIT_HANDLES    0x00000004
+#define PROCESS_CREATE_FLAGS_BREAKAWAY              0x00000001
+#define PROCESS_CREATE_FLAGS_NO_DEBUG_INHERIT       0x00000002
+#define PROCESS_CREATE_FLAGS_INHERIT_HANDLES        0x00000004
 #define PROCESS_CREATE_FLAGS_OVERRIDE_ADDRESS_SPACE 0x00000008
-#define PROCESS_CREATE_FLAGS_LARGE_PAGES        0x00000010
+#define PROCESS_CREATE_FLAGS_LARGE_PAGES            0x00000010
+#define PROCESS_CREATE_FLAGS_ALL_LARGE_PAGE_FLAGS   PROCESS_CREATE_FLAGS_LARGE_PAGES
+#define PROCESS_CREATE_FLAGS_LEGAL_MASK             (PROCESS_CREATE_FLAGS_BREAKAWAY | \
+                                                     PROCESS_CREATE_FLAGS_NO_DEBUG_INHERIT | \
+                                                     PROCESS_CREATE_FLAGS_INHERIT_HANDLES | \
+                                                     PROCESS_CREATE_FLAGS_OVERRIDE_ADDRESS_SPACE | \
+                                                     PROCESS_CREATE_FLAGS_ALL_LARGE_PAGE_FLAGS)
 
 //
 // Process priority classes
@@ -93,18 +112,6 @@ Author:
 #define PROCESS_PRIORITY_CLASS_BELOW_NORMAL     5
 #define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL     6
 
-//
-// NtCreateProcessEx flags
-//
-#define PS_REQUEST_BREAKAWAY                    1
-#define PS_NO_DEBUG_INHERIT                     2
-#define PS_INHERIT_HANDLES                      4
-#define PS_LARGE_PAGES                          8
-#define PS_ALL_FLAGS                            (PS_REQUEST_BREAKAWAY | \
-                                                 PS_NO_DEBUG_INHERIT  | \
-                                                 PS_INHERIT_HANDLES   | \
-                                                 PS_LARGE_PAGES)
-
 //
 // Process base priorities
 //
@@ -492,15 +499,15 @@ struct _WIN32_PARSEMETHOD_PARAMETERS;
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_PROCESS_CALLOUT)(
-    struct _EPROCESS *Process,
-    BOOLEAN Create
+    _In_ struct _EPROCESS *Process,
+    _In_ BOOLEAN Create
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_THREAD_CALLOUT)(
-    struct _ETHREAD *Thread,
-    PSW32THREADCALLOUTTYPE Type
+    _In_ struct _ETHREAD *Thread,
+    _In_ PSW32THREADCALLOUTTYPE Type
 );
 
 typedef
@@ -512,19 +519,19 @@ NTSTATUS
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_POWEREVENT_CALLOUT)(
-    struct _WIN32_POWEREVENT_PARAMETERS *Parameters
+    _In_ struct _WIN32_POWEREVENT_PARAMETERS *Parameters
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_POWERSTATE_CALLOUT)(
-    struct _WIN32_POWERSTATE_PARAMETERS *Parameters
+    _In_ struct _WIN32_POWERSTATE_PARAMETERS *Parameters
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_JOB_CALLOUT)(
-    struct _WIN32_JOBCALLOUT_PARAMETERS *Parameters
+    _In_ struct _WIN32_JOBCALLOUT_PARAMETERS *Parameters
 );
 
 typedef
@@ -536,39 +543,39 @@ NTSTATUS
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_OPENMETHOD_CALLOUT)(
-    struct _WIN32_OPENMETHOD_PARAMETERS *Parameters
+    _In_ struct _WIN32_OPENMETHOD_PARAMETERS *Parameters
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_OKTOCLOSEMETHOD_CALLOUT)(
-    struct _WIN32_OKAYTOCLOSEMETHOD_PARAMETERS *Parameters
+    _In_ struct _WIN32_OKAYTOCLOSEMETHOD_PARAMETERS *Parameters
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_CLOSEMETHOD_CALLOUT)(
-    struct _WIN32_CLOSEMETHOD_PARAMETERS *Parameters
+    _In_ struct _WIN32_CLOSEMETHOD_PARAMETERS *Parameters
 );
 
 typedef
 VOID
 (NTAPI *PKWIN32_DELETEMETHOD_CALLOUT)(
-    struct _WIN32_DELETEMETHOD_PARAMETERS *Parameters
+    _In_ struct _WIN32_DELETEMETHOD_PARAMETERS *Parameters
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_PARSEMETHOD_CALLOUT)(
-    struct _WIN32_PARSEMETHOD_PARAMETERS *Parameters
+    _In_ struct _WIN32_PARSEMETHOD_PARAMETERS *Parameters
 );
 
 typedef
 NTSTATUS
 (NTAPI *PKWIN32_WIN32DATACOLLECTION_CALLOUT)(
-    struct _EPROCESS *Process,
-    PVOID Callback,
-    PVOID Context
+    _In_ struct _EPROCESS *Process,
+    _In_ PVOID Callback,
+    _In_ PVOID Context
 );
 
 //
@@ -577,7 +584,7 @@ NTSTATUS
 typedef
 VOID
 (NTAPI *PLEGO_NOTIFY_ROUTINE)(
-    IN PKTHREAD Thread
+    _In_ PKTHREAD Thread
 );
 
 #endif
@@ -922,7 +929,7 @@ typedef struct _ETHREAD
     union
     {
         KSEMAPHORE LpcReplySemaphore;
-        KSEMAPHORE KeyedReplySemaphore;
+        KSEMAPHORE KeyedWaitSemaphore;
     };
     union
     {
@@ -1383,7 +1390,7 @@ typedef struct _WIN32_PARSEMETHOD_PARAMETERS
     PACCESS_STATE AccessState;
     KPROCESSOR_MODE AccessMode;
     ULONG Attributes;
-    OUT PUNICODE_STRING CompleteName;
+    _Out_ PUNICODE_STRING CompleteName;
     PUNICODE_STRING RemainingName;
     PVOID Context;
     PSECURITY_QUALITY_OF_SERVICE SecurityQos;
@@ -1413,4 +1420,8 @@ typedef struct _WIN32_CALLOUTS_FPNS
 
 #endif // !NTOS_MODE_USER
 
+#ifdef __cplusplus
+}; // extern "C"
+#endif
+
 #endif // _PSTYPES_H