#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
//
#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
//
// 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
#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
//
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
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
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
);
//
typedef
VOID
(NTAPI *PLEGO_NOTIFY_ROUTINE)(
- IN PKTHREAD Thread
+ _In_ PKTHREAD Thread
);
#endif
union
{
KSEMAPHORE LpcReplySemaphore;
- KSEMAPHORE KeyedReplySemaphore;
+ KSEMAPHORE KeyedWaitSemaphore;
};
union
{
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;
#endif // !NTOS_MODE_USER
+#ifdef __cplusplus
+}; // extern "C"
+#endif
+
#endif // _PSTYPES_H