-/*
- * PROJECT: ReactOS Native Headers
- * FILE: include/ndk/pstypes.h
- * PURPOSE: Defintions for Process Manager Types not documented in DDK/IFS.
- * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- * Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu. All rights reserved.
+
+Header Name:
+
+ pstypes.h
+
+Abstract:
+
+ Type definitions for the Process Manager
+
+Author:
+
+ Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
+
+--*/
+
#ifndef _PSTYPES_H
#define _PSTYPES_H
-/* DEPENDENCIES **************************************************************/
-#include "ldrtypes.h"
-#include "rtltypes.h"
+//
+// Dependencies
+//
+#include <umtypes.h>
+#include <ldrtypes.h>
+#include <mmtypes.h>
+#include <obtypes.h>
+#ifndef NTOS_MODE_USER
+#include <extypes.h>
+#include <setypes.h>
+#endif
-/* EXPORTED DATA *************************************************************/
+//
+// KUSER_SHARED_DATA location in User Mode
+//
+#define USER_SHARED_DATA (0x7FFE0000)
-extern NTOSAPI struct _EPROCESS* PsInitialSystemProcess;
-extern NTOSAPI POBJECT_TYPE PsProcessType;
-extern NTOSAPI POBJECT_TYPE PsThreadType;
+//
+// Kernel Exports
+//
+#ifndef NTOS_MODE_USER
+
+extern NTSYSAPI struct _EPROCESS* PsInitialSystemProcess;
+extern NTSYSAPI POBJECT_TYPE PsProcessType;
-/* CONSTANTS *****************************************************************/
+#endif
-/* These are not exposed to drivers normally */
-#ifndef _NTOS_MODE_USER
- #define JOB_OBJECT_ASSIGN_PROCESS (1)
- #define JOB_OBJECT_SET_ATTRIBUTES (2)
- #define JOB_OBJECT_QUERY (4)
- #define JOB_OBJECT_TERMINATE (8)
- #define JOB_OBJECT_SET_SECURITY_ATTRIBUTES (16)
- #define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|31)
+//
+// Global Flags
+//
+#define FLG_STOP_ON_EXCEPTION 0x00000001
+#define FLG_SHOW_LDR_SNAPS 0x00000002
+#define FLG_DEBUG_INITIAL_COMMAND 0x00000004
+#define FLG_STOP_ON_HUNG_GUI 0x00000008
+#define FLG_HEAP_ENABLE_TAIL_CHECK 0x00000010
+#define FLG_HEAP_ENABLE_FREE_CHECK 0x00000020
+#define FLG_HEAP_VALIDATE_PARAMETERS 0x00000040
+#define FLG_HEAP_VALIDATE_ALL 0x00000080
+#define FLG_POOL_ENABLE_TAIL_CHECK 0x00000100
+#define FLG_POOL_ENABLE_FREE_CHECK 0x00000200
+#define FLG_POOL_ENABLE_TAGGING 0x00000400
+#define FLG_HEAP_ENABLE_TAGGING 0x00000800
+#define FLG_USER_STACK_TRACE_DB 0x00001000
+#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_ENABLE_CSRDEBUG 0x00020000
+#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD 0x00040000
+#define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
+#define FLG_HEAP_ENABLE_CALL_TRACING 0x00100000
+#define FLG_HEAP_DISABLE_COALESCING 0x00200000
+#define FLG_ENABLE_CLOSE_EXCEPTIONS 0x00400000
+#define FLG_ENABLE_EXCEPTION_LOGGING 0x00800000
+#define FLG_ENABLE_HANDLE_TYPE_TAGGING 0x01000000
+#define FLG_HEAP_PAGE_ALLOCS 0x02000000
+#define FLG_DEBUG_INITIAL_COMMAND_EX 0x04000000
+
+//
+// Process priority classes
+//
+#define PROCESS_PRIORITY_CLASS_INVALID 0
+#define PROCESS_PRIORITY_CLASS_IDLE 1
+#define PROCESS_PRIORITY_CLASS_NORMAL 2
+#define PROCESS_PRIORITY_CLASS_HIGH 3
+#define PROCESS_PRIORITY_CLASS_REALTIME 4
+#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
+
+#if 0
+//
+// Job Access Types
+//
+#define JOB_OBJECT_ASSIGN_PROCESS 0x1
+#define JOB_OBJECT_SET_ATTRIBUTES 0x2
+#define JOB_OBJECT_QUERY 0x4
+#define JOB_OBJECT_TERMINATE 0x8
+#define JOB_OBJECT_SET_SECURITY_ATTRIBUTES 0x10
+#define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 31)
#endif
-#define THREAD_ALERT 0x4
-
-#define USER_SHARED_DATA (0x7FFE0000)
-
-/* Process priority classes */
-#define PROCESS_PRIORITY_CLASS_HIGH (4) /* FIXME */
-#define PROCESS_PRIORITY_CLASS_IDLE (0) /* FIXME */
-#define PROCESS_PRIORITY_CLASS_NORMAL (2) /* FIXME */
-#define PROCESS_PRIORITY_CLASS_REALTIME (5) /* FIXME */
-#define PROCESS_PRIORITY_CLASS_BELOW_NORMAL (1) /* FIXME */
-#define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL (3) /* FIXME */
-
-/* Global Flags */
-#define FLG_STOP_ON_EXCEPTION 0x00000001
-#define FLG_SHOW_LDR_SNAPS 0x00000002
-#define FLG_DEBUG_INITIAL_COMMAND 0x00000004
-#define FLG_STOP_ON_HUNG_GUI 0x00000008
-#define FLG_HEAP_ENABLE_TAIL_CHECK 0x00000010
-#define FLG_HEAP_ENABLE_FREE_CHECK 0x00000020
-#define FLG_HEAP_VALIDATE_PARAMETERS 0x00000040
-#define FLG_HEAP_VALIDATE_ALL 0x00000080
-#define FLG_POOL_ENABLE_TAIL_CHECK 0x00000100
-#define FLG_POOL_ENABLE_FREE_CHECK 0x00000200
-#define FLG_POOL_ENABLE_TAGGING 0x00000400
-#define FLG_HEAP_ENABLE_TAGGING 0x00000800
-#define FLG_USER_STACK_TRACE_DB 0x00001000
-#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_ENABLE_CSRDEBUG 0x00020000
-#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD 0x00040000
-#define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
-#define FLG_HEAP_ENABLE_CALL_TRACING 0x00100000
-#define FLG_HEAP_DISABLE_COALESCING 0x00200000
-#define FLG_ENABLE_CLOSE_EXCEPTIONS 0x00400000
-#define FLG_ENABLE_EXCEPTION_LOGGING 0x00800000
-#define FLG_ENABLE_HANDLE_TYPE_TAGGING 0x01000000
-#define FLG_HEAP_PAGE_ALLOCS 0x02000000
-#define FLG_DEBUG_INITIAL_COMMAND_EX 0x04000000
-
-/* ENUMERATIONS **************************************************************/
-
-/* FUNCTION TYPES ************************************************************/
-typedef VOID (STDCALL *PPEBLOCKROUTINE)(PVOID);
+#ifdef NTOS_MODE_USER
+//
+// Current Process/Thread built-in 'special' handles
+//
+#define NtCurrentProcess() ((HANDLE)(LONG_PTR)-1)
+#define ZwCurrentProcess() NtCurrentProcess()
+#define NtCurrentThread() ((HANDLE)(LONG_PTR)-2)
+#define ZwCurrentThread() NtCurrentThread()
+
+//
+// Process/Thread/Job Information Classes for NtQueryInformationProcess/Thread/Job
+//
+typedef enum _PROCESSINFOCLASS
+{
+ ProcessBasicInformation,
+ ProcessQuotaLimits,
+ ProcessIoCounters,
+ ProcessVmCounters,
+ ProcessTimes,
+ ProcessBasePriority,
+ ProcessRaisePriority,
+ ProcessDebugPort,
+ ProcessExceptionPort,
+ ProcessAccessToken,
+ ProcessLdtInformation,
+ ProcessLdtSize,
+ ProcessDefaultHardErrorMode,
+ ProcessIoPortHandlers,
+ ProcessPooledUsageAndLimits,
+ ProcessWorkingSetWatch,
+ ProcessUserModeIOPL,
+ ProcessEnableAlignmentFaultFixup,
+ ProcessPriorityClass,
+ ProcessWx86Information,
+ ProcessHandleCount,
+ ProcessAffinityMask,
+ ProcessPriorityBoost,
+ ProcessDeviceMap,
+ ProcessSessionInformation,
+ ProcessForegroundInformation,
+ ProcessWow64Information,
+ ProcessImageFileName,
+ ProcessLUIDDeviceMapsEnabled,
+ ProcessBreakOnTermination,
+ ProcessDebugObjectHandle,
+ ProcessDebugFlags,
+ ProcessHandleTracing,
+ ProcessIoPriority,
+ ProcessExecuteFlags,
+ ProcessTlsInformation,
+ ProcessCookie,
+ ProcessImageInformation,
+ ProcessCycleTime,
+ ProcessPagePriority,
+ ProcessInstrumentationCallback,
+ MaxProcessInfoClass
+} PROCESSINFOCLASS;
+
+typedef enum _THREADINFOCLASS
+{
+ ThreadBasicInformation,
+ ThreadTimes,
+ ThreadPriority,
+ ThreadBasePriority,
+ ThreadAffinityMask,
+ ThreadImpersonationToken,
+ ThreadDescriptorTableEntry,
+ ThreadEnableAlignmentFaultFixup,
+ ThreadEventPair_Reusable,
+ ThreadQuerySetWin32StartAddress,
+ ThreadZeroTlsCell,
+ ThreadPerformanceCount,
+ ThreadAmILastThread,
+ ThreadIdealProcessor,
+ ThreadPriorityBoost,
+ ThreadSetTlsArrayAddress,
+ ThreadIsIoPending,
+ ThreadHideFromDebugger,
+ ThreadBreakOnTermination,
+ ThreadSwitchLegacyState,
+ ThreadIsTerminated,
+ ThreadLastSystemCall,
+ ThreadIoPriority,
+ ThreadCycleTime,
+ ThreadPagePriority,
+ ThreadActualBasePriority,
+ MaxThreadInfoClass
+} THREADINFOCLASS;
+
+#else
+
+typedef enum _JOBOBJECTINFOCLASS
+{
+ JobObjectBasicAccountingInformation = 1,
+ JobObjectBasicLimitInformation,
+ JobObjectBasicProcessIdList,
+ JobObjectBasicUIRestrictions,
+ JobObjectSecurityLimitInformation,
+ JobObjectEndOfJobTimeInformation,
+ JobObjectAssociateCompletionPortInformation,
+ JobObjectBasicAndIoAccountingInformation,
+ JobObjectExtendedLimitInformation,
+ JobObjectJobSetInformation,
+ MaxJobObjectInfoClass
+} JOBOBJECTINFOCLASS;
+
+//
+// Declare empty structure definitions so that they may be referenced by
+// routines before they are defined
+//
+struct _W32THREAD;
+struct _W32PROCESS;
+struct _ETHREAD;
+//
+// Win32K Process and Thread Callbacks
+//
typedef NTSTATUS
-(STDCALL *PW32_PROCESS_CALLBACK)(
+(NTAPI *PW32_PROCESS_CALLBACK)(
struct _EPROCESS *Process,
BOOLEAN Create
);
typedef NTSTATUS
-(STDCALL *PW32_THREAD_CALLBACK)(
+(NTAPI *PW32_THREAD_CALLBACK)(
struct _ETHREAD *Thread,
BOOLEAN Create
);
-/* TYPES *********************************************************************/
+#endif
-struct _ETHREAD;
+#ifdef NTOS_MODE_USER
+
+//
+// ClientID Structure
+//
+typedef struct _CLIENT_ID
+{
+ HANDLE UniqueProcess;
+ HANDLE UniqueThread;
+} CLIENT_ID, *PCLIENT_ID;
+
+#endif
+//
+// Descriptor Table Entry Definition
+//
+#define _DESCRIPTOR_TABLE_ENTRY_DEFINED
typedef struct _DESCRIPTOR_TABLE_ENTRY
{
ULONG Selector;
LDT_ENTRY Descriptor;
} DESCRIPTOR_TABLE_ENTRY, *PDESCRIPTOR_TABLE_ENTRY;
+//
+// PEB Lock Routine
+//
+typedef VOID
+(NTAPI *PPEBLOCKROUTINE)(
+ PVOID PebLock
+);
+
+//
+// PEB Free Block Descriptor
+//
typedef struct _PEB_FREE_BLOCK
{
struct _PEB_FREE_BLOCK* Next;
ULONG Size;
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
+//
+// Process Environment Block (PEB)
+//
typedef struct _PEB
{
UCHAR InheritedAddressSpace; /* 00h */
HANDLE Mutant; /* 04h */
PVOID ImageBaseAddress; /* 08h */
PPEB_LDR_DATA Ldr; /* 0Ch */
- PRTL_USER_PROCESS_PARAMETERS ProcessParameters; /* 10h */
+ struct _RTL_USER_PROCESS_PARAMETERS *ProcessParameters; /* 10h */
PVOID SubSystemData; /* 14h */
PVOID ProcessHeap; /* 18h */
PVOID FastPebLock; /* 1Ch */
ULONG ImageProcessAffinityMask; /* C0h */
ULONG GdiHandleBuffer[0x22]; /* C4h */
PVOID PostProcessInitRoutine; /* 14Ch */
- PVOID *TlsExpansionBitmap; /* 150h */
+ struct _RTL_BITMAP *TlsExpansionBitmap; /* 150h */
ULONG TlsExpansionBitmapBits[0x20]; /* 154h */
ULONG SessionId; /* 1D4h */
PVOID AppCompatInfo; /* 1D8h */
UNICODE_STRING CSDVersion; /* 1DCh */
-} PEB;
+} PEB, *PPEB;
+//
+// GDI Batch Descriptor
+//
typedef struct _GDI_TEB_BATCH
{
ULONG Offset;
ULONG Buffer[0x136];
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
+//
+// Initial TEB
+//
typedef struct _INITIAL_TEB
{
PVOID PreviousStackBase;
PVOID AllocatedStackBase;
} INITIAL_TEB, *PINITIAL_TEB;
+//
+// TEB Active Frame Structures
+//
typedef struct _TEB_ACTIVE_FRAME_CONTEXT
{
ULONG Flags;
PTEB_ACTIVE_FRAME_CONTEXT Context;
} TEB_ACTIVE_FRAME, *PTEB_ACTIVE_FRAME;
+//
+// Thread Environment Block (TEB)
+//
typedef struct _TEB
{
NT_TIB Tib; /* 00h */
PVOID FlsData; /* FB4h */
UCHAR SafeThunkCall; /* FB8h */
UCHAR BooleanSpare[3]; /* FB9h */
- /* FIXME: Needed for WINE DLL's */
- PVOID WineDebugInfo; /* FBCh */
} TEB, *PTEB;
-/* KERNEL MODE ONLY **********************************************************/
-#ifndef NTOS_MODE_USER
+#ifdef NTOS_MODE_USER
-#include "mmtypes.h"
-#include "obtypes.h"
-#include "extypes.h"
-#include "setypes.h"
+//
+// Process Information Structures for NtQueryProcessInformation
+//
+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;
-/* FIXME: see note in mmtypes.h */
-#ifdef _NTOSKRNL_
-#include <internal/mm.h>
#endif
+typedef struct _PROCESS_PRIORITY_CLASS
+{
+ BOOLEAN Foreground;
+ UCHAR PriorityClass;
+} PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;
+
+//
+// Thread Information Structures for NtQueryProcessInformation
+//
+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
+
+//
+// EPROCESS Quota Structures
+//
typedef struct _EPROCESS_QUOTA_ENTRY
{
- ULONG Usage;
- ULONG Limit;
- ULONG Peak;
- ULONG Return;
+ SIZE_T Usage;
+ SIZE_T Limit;
+ SIZE_T Peak;
+ SIZE_T Return;
} EPROCESS_QUOTA_ENTRY, *PEPROCESS_QUOTA_ENTRY;
typedef struct _EPROCESS_QUOTA_BLOCK
ULONG ProcessCount;
} EPROCESS_QUOTA_BLOCK, *PEPROCESS_QUOTA_BLOCK;
+//
+// FIXME: This really belongs in mmtypes.h
+//
typedef struct _PAGEFAULT_HISTORY
{
ULONG CurrentIndex;
PROCESS_WS_WATCH_INFORMATION WatchInfo[1];
} PAGEFAULT_HISTORY, *PPAGEFAULT_HISTORY;
+//
+// Process Impersonation Information
+//
typedef struct _PS_IMPERSONATION_INFORMATION
{
- PACCESS_TOKEN Token;
- BOOLEAN CopyOnOpen;
- BOOLEAN EffectiveOnly;
- SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+ PACCESS_TOKEN Token;
+ BOOLEAN CopyOnOpen;
+ BOOLEAN EffectiveOnly;
+ SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
} PS_IMPERSONATION_INFORMATION, *PPS_IMPERSONATION_INFORMATION;
+//
+// Process Termination Port
+//
+typedef struct _TERMINATION_PORT
+{
+ struct _TERMINATION_PORT *Next;
+ PVOID Port;
+} TERMINATION_PORT, *PTERMINATION_PORT;
+
+//
+// Executive Thread (ETHREAD)
+//
#include <pshpack4.h>
-/*
- * NAME: ETHREAD
- * DESCRIPTION: Internal Executive Thread Structure.
- * PORTABILITY: Architecture Independent.
- * KERNEL VERSION: 5.2
- * DOCUMENTATION: http://reactos.com/wiki/index.php/ETHREAD
- */
typedef struct _ETHREAD
{
KTHREAD Tcb; /* 1C0 */
PKSTART_ROUTINE StartAddress; /* 21C */
union
{
- PTHREAD_START_ROUTINE Win32StartAddress; /* 220 */
+ PVOID Win32StartAddress; /* 220 */
ULONG LpcReceivedMessageId; /* 220 */
};
LIST_ENTRY ThreadListEntry; /* 224 */
UCHAR ActiveFaultCount; /* 24E */
} ETHREAD;
-/*
- * NAME: EPROCESS
- * DESCRIPTION: Internal Executive Process Structure.
- * PORTABILITY: Architecture Independent.
- * KERNEL VERSION: 5.2
- * DOCUMENTATION: http://reactos.com/wiki/index.php/EPROCESS
- */
+#if defined(_NTOSKRNL_)
+ #include <internal/mm.h>
+#endif
+
+//
+// Executive Process (EPROCESS)
+//
typedef struct _EPROCESS
{
KPROCESS Pcb; /* 000 */
MM_AVL_TABLE VadRoot; /* 250 */
ULONG Cookie; /* 270 */
-/***************************************************************
- * REACTOS SPECIFIC START
- ***************************************************************/
- /* FIXME WILL BE DEPRECATED WITH PUSHLOCK SUPPORT IN 0.3.0 */
+#ifdef _REACTOS_
+ /* FIXME: WILL BE DEPRECATED WITH PUSHLOCK SUPPORT IN 0.3.0*/
KEVENT LockEvent; /* 274 */
ULONG LockCount; /* 284 */
struct _KTHREAD *LockOwner; /* 288 */
- /* FIXME MOVE TO AVL TREES */
+ /* FIXME: MOVE TO AVL TREES */
MADDRESS_SPACE AddressSpace; /* 28C */
+#endif
} EPROCESS;
#include <poppack.h>
+//
+// Job Token Filter Data
+//
#include <pshpack1.h>
typedef struct _PS_JOB_TOKEN_FILTER
{
- UINT CapturedSidCount;
+ ULONG CapturedSidCount;
PSID_AND_ATTRIBUTES CapturedSids;
- UINT CapturedSidsLength;
- UINT CapturedGroupCount;
+ ULONG CapturedSidsLength;
+ ULONG CapturedGroupCount;
PSID_AND_ATTRIBUTES CapturedGroups;
- UINT CapturedGroupsLength;
- UINT CapturedPrivilegeCount;
+ ULONG CapturedGroupsLength;
+ ULONG CapturedPrivilegeCount;
PLUID_AND_ATTRIBUTES CapturedPrivileges;
- UINT CapturedPrivilegesLength;
+ ULONG CapturedPrivilegesLength;
} PS_JOB_TOKEN_FILTER, *PPS_JOB_TOKEN_FILTER;
+//
+// Executive Job (EJOB)
+//
typedef struct _EJOB
{
KEVENT Event;
LARGE_INTEGER TotalKernelTime;
LARGE_INTEGER ThisPeriodTotalUserTime;
LARGE_INTEGER ThisPeriodTotalKernelTime;
- UINT TotalPageFaultCount;
- UINT TotalProcesses;
- UINT ActiveProcesses;
- UINT TotalTerminatedProcesses;
+ ULONG TotalPageFaultCount;
+ ULONG TotalProcesses;
+ ULONG ActiveProcesses;
+ ULONG TotalTerminatedProcesses;
LARGE_INTEGER PerProcessUserTimeLimit;
LARGE_INTEGER PerJobUserTimeLimit;
- UINT LimitFlags;
- UINT MinimumWorkingSetSize;
- UINT MaximumWorkingSetSize;
- UINT ActiveProcessLimit;
- UINT Affinity;
- BYTE PriorityClass;
- UINT UIRestrictionsClass;
- UINT SecurityLimitFlags;
+ ULONG LimitFlags;
+ ULONG MinimumWorkingSetSize;
+ ULONG MaximumWorkingSetSize;
+ ULONG ActiveProcessLimit;
+ ULONG Affinity;
+ UCHAR PriorityClass;
+ ULONG UIRestrictionsClass;
+ ULONG SecurityLimitFlags;
PVOID Token;
PPS_JOB_TOKEN_FILTER Filter;
- UINT EndOfJobTimeAction;
+ ULONG EndOfJobTimeAction;
PVOID CompletionPort;
PVOID CompletionKey;
- UINT SessionId;
- UINT SchedulingClass;
+ ULONG SessionId;
+ ULONG SchedulingClass;
ULONGLONG ReadOperationCount;
ULONGLONG WriteOperationCount;
ULONGLONG OtherOperationCount;
ULONGLONG WriteTransferCount;
ULONGLONG OtherTransferCount;
IO_COUNTERS IoInfo;
- UINT ProcessMemoryLimit;
- UINT JobMemoryLimit;
- UINT PeakProcessMemoryUsed;
- UINT PeakJobMemoryUsed;
- UINT CurrentJobMemoryUsed;
+ ULONG ProcessMemoryLimit;
+ ULONG JobMemoryLimit;
+ ULONG PeakProcessMemoryUsed;
+ ULONG PeakJobMemoryUsed;
+ ULONG CurrentJobMemoryUsed;
KGUARDED_MUTEX MemoryLimitsLock;
ULONG MemberLevel;
ULONG JobFlags;
} EJOB, *PEJOB;
#include <poppack.h>
+//
+// Win32K Callback Registration Data
+//
typedef struct _W32_CALLOUT_DATA
{
PW32_PROCESS_CALLBACK W32ProcessCallout;
OB_DELETE_METHOD WinStaDelete;
OB_PARSE_METHOD WinStaParse;
OB_OPEN_METHOD WinStaOpen;
-
- /* FIXME: These are ROS-ONLY and are fixed in a future local patch */
+#ifdef _REACTOS_
+ /* FIXME: REACTOS ONLY */
OB_FIND_METHOD WinStaFind;
OB_OPEN_METHOD WinStaCreate;
OB_CREATE_METHOD DesktopCreate;
+#endif
} W32_CALLOUT_DATA, *PW32_CALLOUT_DATA;
-#endif
+#endif // !NTOS_MODE_USER
-#endif
+#endif // _PSTYPES_H