2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/pstypes.h
4 * PURPOSE: Defintions for Process Manager Types not documented in DDK/IFS.
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
12 /* DEPENDENCIES **************************************************************/
16 /* EXPORTED DATA *************************************************************/
18 extern NTOSAPI
struct _EPROCESS
* PsInitialSystemProcess
;
19 extern NTOSAPI POBJECT_TYPE PsProcessType
;
20 extern NTOSAPI POBJECT_TYPE PsThreadType
;
22 /* CONSTANTS *****************************************************************/
24 /* These are not exposed to drivers normally */
25 #ifndef NTOS_MODE_USER
26 #define JOB_OBJECT_ASSIGN_PROCESS 1
27 #define JOB_OBJECT_SET_ATTRIBUTES 2
28 #define JOB_OBJECT_QUERY 4
29 #define JOB_OBJECT_TERMINATE 8
30 #define JOB_OBJECT_SET_SECURITY_ATTRIBUTES 16
31 #define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|31)
34 #define THREAD_ALERT 0x4
36 #define USER_SHARED_DATA (0x7FFE0000)
38 /* Process priority classes */
39 #define PROCESS_PRIORITY_CLASS_IDLE 0
40 #define PROCESS_PRIORITY_CLASS_BELOW_NORMAL 1
41 #define PROCESS_PRIORITY_CLASS_NORMAL 2
42 #define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL 3
43 #define PROCESS_PRIORITY_CLASS_HIGH 4
44 #define PROCESS_PRIORITY_CLASS_REALTIME 5
47 #define FLG_STOP_ON_EXCEPTION 0x00000001
48 #define FLG_SHOW_LDR_SNAPS 0x00000002
49 #define FLG_DEBUG_INITIAL_COMMAND 0x00000004
50 #define FLG_STOP_ON_HUNG_GUI 0x00000008
51 #define FLG_HEAP_ENABLE_TAIL_CHECK 0x00000010
52 #define FLG_HEAP_ENABLE_FREE_CHECK 0x00000020
53 #define FLG_HEAP_VALIDATE_PARAMETERS 0x00000040
54 #define FLG_HEAP_VALIDATE_ALL 0x00000080
55 #define FLG_POOL_ENABLE_TAIL_CHECK 0x00000100
56 #define FLG_POOL_ENABLE_FREE_CHECK 0x00000200
57 #define FLG_POOL_ENABLE_TAGGING 0x00000400
58 #define FLG_HEAP_ENABLE_TAGGING 0x00000800
59 #define FLG_USER_STACK_TRACE_DB 0x00001000
60 #define FLG_KERNEL_STACK_TRACE_DB 0x00002000
61 #define FLG_MAINTAIN_OBJECT_TYPELIST 0x00004000
62 #define FLG_HEAP_ENABLE_TAG_BY_DLL 0x00008000
63 #define FLG_IGNORE_DEBUG_PRIV 0x00010000
64 #define FLG_ENABLE_CSRDEBUG 0x00020000
65 #define FLG_ENABLE_KDEBUG_SYMBOL_LOAD 0x00040000
66 #define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
67 #define FLG_HEAP_ENABLE_CALL_TRACING 0x00100000
68 #define FLG_HEAP_DISABLE_COALESCING 0x00200000
69 #define FLG_ENABLE_CLOSE_EXCEPTIONS 0x00400000
70 #define FLG_ENABLE_EXCEPTION_LOGGING 0x00800000
71 #define FLG_ENABLE_HANDLE_TYPE_TAGGING 0x01000000
72 #define FLG_HEAP_PAGE_ALLOCS 0x02000000
73 #define FLG_DEBUG_INITIAL_COMMAND_EX 0x04000000
75 /* ENUMERATIONS **************************************************************/
77 /* FUNCTION TYPES ************************************************************/
78 typedef VOID (NTAPI
*PPEBLOCKROUTINE
)(PVOID
);
81 (NTAPI
*PW32_PROCESS_CALLBACK
)(
82 struct _EPROCESS
*Process
,
87 (NTAPI
*PW32_THREAD_CALLBACK
)(
88 struct _ETHREAD
*Thread
,
92 /* TYPES *********************************************************************/
96 typedef struct _DESCRIPTOR_TABLE_ENTRY
100 } DESCRIPTOR_TABLE_ENTRY
, *PDESCRIPTOR_TABLE_ENTRY
;
102 typedef struct _PEB_FREE_BLOCK
104 struct _PEB_FREE_BLOCK
* Next
;
106 } PEB_FREE_BLOCK
, *PPEB_FREE_BLOCK
;
110 UCHAR InheritedAddressSpace
; /* 00h */
111 UCHAR ReadImageFileExecOptions
; /* 01h */
112 UCHAR BeingDebugged
; /* 02h */
113 BOOLEAN SpareBool
; /* 03h */
114 HANDLE Mutant
; /* 04h */
115 PVOID ImageBaseAddress
; /* 08h */
116 PPEB_LDR_DATA Ldr
; /* 0Ch */
117 PRTL_USER_PROCESS_PARAMETERS ProcessParameters
; /* 10h */
118 PVOID SubSystemData
; /* 14h */
119 PVOID ProcessHeap
; /* 18h */
120 PVOID FastPebLock
; /* 1Ch */
121 PPEBLOCKROUTINE FastPebLockRoutine
; /* 20h */
122 PPEBLOCKROUTINE FastPebUnlockRoutine
; /* 24h */
123 ULONG EnvironmentUpdateCount
; /* 28h */
124 PVOID
* KernelCallbackTable
; /* 2Ch */
125 PVOID EventLogSection
; /* 30h */
126 PVOID EventLog
; /* 34h */
127 PPEB_FREE_BLOCK FreeList
; /* 38h */
128 ULONG TlsExpansionCounter
; /* 3Ch */
129 PVOID TlsBitmap
; /* 40h */
130 ULONG TlsBitmapBits
[0x2]; /* 44h */
131 PVOID ReadOnlySharedMemoryBase
; /* 4Ch */
132 PVOID ReadOnlySharedMemoryHeap
; /* 50h */
133 PVOID
* ReadOnlyStaticServerData
; /* 54h */
134 PVOID AnsiCodePageData
; /* 58h */
135 PVOID OemCodePageData
; /* 5Ch */
136 PVOID UnicodeCaseTableData
; /* 60h */
137 ULONG NumberOfProcessors
; /* 64h */
138 ULONG NtGlobalFlag
; /* 68h */
139 LARGE_INTEGER CriticalSectionTimeout
; /* 70h */
140 ULONG HeapSegmentReserve
; /* 78h */
141 ULONG HeapSegmentCommit
; /* 7Ch */
142 ULONG HeapDeCommitTotalFreeThreshold
; /* 80h */
143 ULONG HeapDeCommitFreeBlockThreshold
; /* 84h */
144 ULONG NumberOfHeaps
; /* 88h */
145 ULONG MaximumNumberOfHeaps
; /* 8Ch */
146 PVOID
* ProcessHeaps
; /* 90h */
147 PVOID GdiSharedHandleTable
; /* 94h */
148 PVOID ProcessStarterHelper
; /* 98h */
149 PVOID GdiDCAttributeList
; /* 9Ch */
150 PVOID LoaderLock
; /* A0h */
151 ULONG OSMajorVersion
; /* A4h */
152 ULONG OSMinorVersion
; /* A8h */
153 USHORT OSBuildNumber
; /* ACh */
154 USHORT OSCSDVersion
; /* AEh */
155 ULONG OSPlatformId
; /* B0h */
156 ULONG ImageSubSystem
; /* B4h */
157 ULONG ImageSubSystemMajorVersion
; /* B8h */
158 ULONG ImageSubSystemMinorVersion
; /* BCh */
159 ULONG ImageProcessAffinityMask
; /* C0h */
160 ULONG GdiHandleBuffer
[0x22]; /* C4h */
161 PVOID PostProcessInitRoutine
; /* 14Ch */
162 PVOID
*TlsExpansionBitmap
; /* 150h */
163 ULONG TlsExpansionBitmapBits
[0x20]; /* 154h */
164 ULONG SessionId
; /* 1D4h */
165 PVOID AppCompatInfo
; /* 1D8h */
166 UNICODE_STRING CSDVersion
; /* 1DCh */
169 typedef struct _GDI_TEB_BATCH
174 } GDI_TEB_BATCH
, *PGDI_TEB_BATCH
;
176 typedef struct _INITIAL_TEB
178 PVOID PreviousStackBase
;
179 PVOID PreviousStackLimit
;
182 PVOID AllocatedStackBase
;
183 } INITIAL_TEB
, *PINITIAL_TEB
;
185 typedef struct _TEB_ACTIVE_FRAME_CONTEXT
189 } TEB_ACTIVE_FRAME_CONTEXT
, *PTEB_ACTIVE_FRAME_CONTEXT
;
191 typedef struct _TEB_ACTIVE_FRAME
194 struct _TEB_ACTIVE_FRAME
*Previous
;
195 PTEB_ACTIVE_FRAME_CONTEXT Context
;
196 } TEB_ACTIVE_FRAME
, *PTEB_ACTIVE_FRAME
;
200 NT_TIB Tib
; /* 00h */
201 PVOID EnvironmentPointer
; /* 1Ch */
202 CLIENT_ID Cid
; /* 20h */
203 PVOID ActiveRpcHandle
; /* 28h */
204 PVOID ThreadLocalStoragePointer
; /* 2Ch */
205 struct _PEB
*ProcessEnvironmentBlock
; /* 30h */
206 ULONG LastErrorValue
; /* 34h */
207 ULONG CountOfOwnedCriticalSections
; /* 38h */
208 PVOID CsrClientThread
; /* 3Ch */
209 struct _W32THREAD
* Win32ThreadInfo
; /* 40h */
210 ULONG User32Reserved
[0x1A]; /* 44h */
211 ULONG UserReserved
[5]; /* ACh */
212 PVOID WOW32Reserved
; /* C0h */
213 LCID CurrentLocale
; /* C4h */
214 ULONG FpSoftwareStatusRegister
; /* C8h */
215 PVOID SystemReserved1
[0x36]; /* CCh */
216 LONG ExceptionCode
; /* 1A4h */
217 struct _ACTIVATION_CONTEXT_STACK
*ActivationContextStackPointer
; /* 1A8h */
218 UCHAR SpareBytes1
[0x28]; /* 1ACh */
219 GDI_TEB_BATCH GdiTebBatch
; /* 1D4h */
220 CLIENT_ID RealClientId
; /* 6B4h */
221 PVOID GdiCachedProcessHandle
; /* 6BCh */
222 ULONG GdiClientPID
; /* 6C0h */
223 ULONG GdiClientTID
; /* 6C4h */
224 PVOID GdiThreadLocalInfo
; /* 6C8h */
225 ULONG Win32ClientInfo
[62]; /* 6CCh */
226 PVOID glDispatchTable
[0xE9]; /* 7C4h */
227 ULONG glReserved1
[0x1D]; /* B68h */
228 PVOID glReserved2
; /* BDCh */
229 PVOID glSectionInfo
; /* BE0h */
230 PVOID glSection
; /* BE4h */
231 PVOID glTable
; /* BE8h */
232 PVOID glCurrentRC
; /* BECh */
233 PVOID glContext
; /* BF0h */
234 NTSTATUS LastStatusValue
; /* BF4h */
235 UNICODE_STRING StaticUnicodeString
; /* BF8h */
236 WCHAR StaticUnicodeBuffer
[0x105]; /* C00h */
237 PVOID DeallocationStack
; /* E0Ch */
238 PVOID TlsSlots
[0x40]; /* E10h */
239 LIST_ENTRY TlsLinks
; /* F10h */
240 PVOID Vdm
; /* F18h */
241 PVOID ReservedForNtRpc
; /* F1Ch */
242 PVOID DbgSsReserved
[0x2]; /* F20h */
243 ULONG HardErrorDisabled
; /* F28h */
244 PVOID Instrumentation
[14]; /* F2Ch */
245 PVOID SubProcessTag
; /* F64h */
246 PVOID EtwTraceData
; /* F68h */
247 PVOID WinSockData
; /* F6Ch */
248 ULONG GdiBatchCount
; /* F70h */
249 BOOLEAN InDbgPrint
; /* F74h */
250 BOOLEAN FreeStackOnTermination
; /* F75h */
251 BOOLEAN HasFiberData
; /* F76h */
252 UCHAR IdealProcessor
; /* F77h */
253 ULONG GuaranteedStackBytes
; /* F78h */
254 PVOID ReservedForPerf
; /* F7Ch */
255 PVOID ReservedForOle
; /* F80h */
256 ULONG WaitingOnLoaderLock
; /* F84h */
257 ULONG SparePointer1
; /* F88h */
258 ULONG SoftPatchPtr1
; /* F8Ch */
259 ULONG SoftPatchPtr2
; /* F90h */
260 PVOID
*TlsExpansionSlots
; /* F94h */
261 ULONG ImpersionationLocale
; /* F98h */
262 ULONG IsImpersonating
; /* F9Ch */
263 PVOID NlsCache
; /* FA0h */
264 PVOID pShimData
; /* FA4h */
265 ULONG HeapVirualAffinity
; /* FA8h */
266 PVOID CurrentTransactionHandle
; /* FACh */
267 PTEB_ACTIVE_FRAME ActiveFrame
; /* FB0h */
268 PVOID FlsData
; /* FB4h */
269 UCHAR SafeThunkCall
; /* FB8h */
270 UCHAR BooleanSpare
[3]; /* FB9h */
271 /* FIXME: Needed for WINE DLL's */
272 PVOID WineDebugInfo
; /* FBCh */
275 /* KERNEL MODE ONLY **********************************************************/
276 #ifndef NTOS_MODE_USER
283 /* FIXME: see note in mmtypes.h */
285 #include <internal/mm.h>
288 typedef struct _EPROCESS_QUOTA_ENTRY
294 } EPROCESS_QUOTA_ENTRY
, *PEPROCESS_QUOTA_ENTRY
;
296 typedef struct _EPROCESS_QUOTA_BLOCK
298 EPROCESS_QUOTA_ENTRY QuotaEntry
[3];
299 LIST_ENTRY QuotaList
;
300 ULONG ReferenceCount
;
302 } EPROCESS_QUOTA_BLOCK
, *PEPROCESS_QUOTA_BLOCK
;
304 typedef struct _PAGEFAULT_HISTORY
310 PROCESS_WS_WATCH_INFORMATION WatchInfo
[1];
311 } PAGEFAULT_HISTORY
, *PPAGEFAULT_HISTORY
;
313 typedef struct _PS_IMPERSONATION_INFORMATION
317 BOOLEAN EffectiveOnly
;
318 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
;
319 } PS_IMPERSONATION_INFORMATION
, *PPS_IMPERSONATION_INFORMATION
;
321 #include <pshpack4.h>
324 * DESCRIPTION: Internal Executive Thread Structure.
325 * PORTABILITY: Architecture Independent.
326 * KERNEL VERSION: 5.2
327 * DOCUMENTATION: http://reactos.com/wiki/index.php/ETHREAD
329 typedef struct _ETHREAD
331 KTHREAD Tcb
; /* 1C0 */
332 LARGE_INTEGER CreateTime
; /* 1C0 */
333 LARGE_INTEGER ExitTime
; /* 1C0 */
336 LIST_ENTRY LpcReplyChain
; /* 1C0 */
337 LIST_ENTRY KeyedWaitChain
; /* 1C0 */
341 NTSTATUS ExitStatus
; /* 1C8 */
342 PVOID OfsChain
; /* 1C8 */
344 LIST_ENTRY PostBlockList
; /* 1CC */
347 struct _TERMINATION_PORT
*TerminationPort
; /* 1D4 */
348 struct _ETHREAD
*ReaperLink
; /* 1D4 */
349 PVOID KeyedWaitValue
; /* 1D4 */
351 KSPIN_LOCK ActiveTimerListLock
; /* 1D8 */
352 LIST_ENTRY ActiveTimerListHead
; /* 1D8 */
353 CLIENT_ID Cid
; /* 1E0 */
356 KSEMAPHORE LpcReplySemaphore
; /* 1E4 */
357 KSEMAPHORE KeyedReplySemaphore
; /* 1E4 */
361 PVOID LpcReplyMessage
; /* 200 */
362 PVOID LpcWaitingOnPort
; /* 200 */
364 PPS_IMPERSONATION_INFORMATION ImpersonationInfo
; /* 204 */
365 LIST_ENTRY IrpList
; /* 208 */
366 ULONG TopLevelIrp
; /* 210 */
367 PDEVICE_OBJECT DeviceToVerify
; /* 214 */
368 struct _EPROCESS
*ThreadsProcess
; /* 218 */
369 PKSTART_ROUTINE StartAddress
; /* 21C */
372 PTHREAD_START_ROUTINE Win32StartAddress
; /* 220 */
373 ULONG LpcReceivedMessageId
; /* 220 */
375 LIST_ENTRY ThreadListEntry
; /* 224 */
376 EX_RUNDOWN_REF RundownProtect
; /* 22C */
377 EX_PUSH_LOCK ThreadLock
; /* 230 */
378 ULONG LpcReplyMessageId
; /* 234 */
379 ULONG ReadClusterSize
; /* 238 */
380 ACCESS_MASK GrantedAccess
; /* 23C */
387 ULONG HideFromDebugger
:1;
388 ULONG ActiveImpersonationInfo
:1;
389 ULONG SystemThread
:1;
390 ULONG HardErrorsAreDisabled
:1;
391 ULONG BreakOnTermination
:1;
392 ULONG SkipCreationMsg
:1;
393 ULONG SkipTerminationMsg
:1;
395 ULONG CrossThreadFlags
; /* 240 */
401 ULONG ActiveExWorker
:1;
402 ULONG ExWorkerCanWaitUser
:1;
404 ULONG KeyedEventInUse
:1;
406 ULONG SameThreadPassiveFlags
; /* 244 */
412 ULONG LpcReceivedMsgIdValid
:1;
413 ULONG LpcExitThreadCalled
:1;
414 ULONG AddressSpaceOwner
:1;
415 ULONG OwnsProcessWorkingSetExclusive
:1;
416 ULONG OwnsProcessWorkingSetShared
:1;
417 ULONG OwnsSystemWorkingSetExclusive
:1;
418 ULONG OwnsSystemWorkingSetShared
:1;
419 ULONG OwnsSessionWorkingSetExclusive
:1;
420 ULONG OwnsSessionWorkingSetShared
:1;
423 ULONG SameThreadApcFlags
; /* 248 */
425 UCHAR ForwardClusterOnly
; /* 24C */
426 UCHAR DisablePageFaultClustering
; /* 24D */
427 UCHAR ActiveFaultCount
; /* 24E */
432 * DESCRIPTION: Internal Executive Process Structure.
433 * PORTABILITY: Architecture Independent.
434 * KERNEL VERSION: 5.2
435 * DOCUMENTATION: http://reactos.com/wiki/index.php/EPROCESS
437 typedef struct _EPROCESS
439 KPROCESS Pcb
; /* 000 */
440 EX_PUSH_LOCK ProcessLock
; /* 078 */
441 LARGE_INTEGER CreateTime
; /* 080 */
442 LARGE_INTEGER ExitTime
; /* 088 */
443 EX_RUNDOWN_REF RundownProtect
; /* 090 */
444 HANDLE UniqueProcessId
; /* 094 */
445 LIST_ENTRY ActiveProcessLinks
; /* 098 */
446 ULONG QuotaUsage
[3]; /* 0A0 */
447 ULONG QuotaPeak
[3]; /* 0AC */
448 ULONG CommitCharge
; /* 0B8 */
449 ULONG PeakVirtualSize
; /* 0BC */
450 ULONG VirtualSize
; /* 0C0 */
451 LIST_ENTRY SessionProcessLinks
; /* 0C4 */
452 PVOID DebugPort
; /* 0CC */
453 PVOID ExceptionPort
; /* 0D0 */
454 PHANDLE_TABLE ObjectTable
; /* 0D4 */
455 EX_FAST_REF Token
; /* 0D8 */
456 ULONG WorkingSetPage
; /* 0DC */
457 KGUARDED_MUTEX AddressCreationLock
; /* 0E0 */
458 KSPIN_LOCK HyperSpaceLock
; /* 100 */
459 PETHREAD ForkInProgress
; /* 104 */
460 ULONG HardwareTrigger
; /* 108 */
461 MM_AVL_TABLE PhysicalVadroot
; /* 10C */
462 PVOID CloneRoot
; /* 110 */
463 ULONG NumberOfPrivatePages
; /* 114 */
464 ULONG NumberOfLockedPages
; /* 118 */
465 PVOID
*Win32Process
; /* 11C */
466 struct _EJOB
*Job
; /* 120 */
467 PVOID SectionObject
; /* 124 */
468 PVOID SectionBaseAddress
; /* 128 */
469 PEPROCESS_QUOTA_BLOCK QuotaBlock
; /* 12C */
470 PPAGEFAULT_HISTORY WorkingSetWatch
; /* 130 */
471 PVOID Win32WindowStation
; /* 134 */
472 HANDLE InheritedFromUniqueProcessId
; /* 138 */
473 PVOID LdtInformation
; /* 13C */
474 PVOID VadFreeHint
; /* 140 */
475 PVOID VdmObjects
; /* 144 */
476 PVOID DeviceMap
; /* 148 */
477 PVOID Spare0
[3]; /* 14C */
480 HARDWARE_PTE_X86 PagedirectoryPte
; /* 158 */
481 ULONGLONG Filler
; /* 158 */
483 ULONG Session
; /* 160 */
484 CHAR ImageFileName
[16]; /* 164 */
485 LIST_ENTRY JobLinks
; /* 174 */
486 PVOID LockedPagesList
; /* 17C */
487 LIST_ENTRY ThreadListHead
; /* 184 */
488 PVOID SecurityPort
; /* 188 */
489 PVOID PaeTop
; /* 18C */
490 ULONG ActiveThreds
; /* 190 */
491 ACCESS_MASK GrantedAccess
; /* 194 */
492 ULONG DefaultHardErrorProcessing
; /* 198 */
493 NTSTATUS LastThreadExitStatus
; /* 19C */
494 struct _PEB
* Peb
; /* 1A0 */
495 EX_FAST_REF PrefetchTrace
; /* 1A4 */
496 LARGE_INTEGER ReadOperationCount
; /* 1A8 */
497 LARGE_INTEGER WriteOperationCount
; /* 1B0 */
498 LARGE_INTEGER OtherOperationCount
; /* 1B8 */
499 LARGE_INTEGER ReadTransferCount
; /* 1C0 */
500 LARGE_INTEGER WriteTransferCount
; /* 1C8 */
501 LARGE_INTEGER OtherTransferCount
; /* 1D0 */
502 ULONG CommitChargeLimit
; /* 1D8 */
503 ULONG CommitChargePeak
; /* 1DC */
504 PVOID AweInfo
; /* 1E0 */
505 SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo
; /* 1E4 */
506 MMSUPPORT Vm
; /* 1E8 */
507 LIST_ENTRY MmProcessLinks
; /* 230 */
508 ULONG ModifiedPageCount
; /* 238 */
509 ULONG JobStatus
; /* 23C */
514 ULONG CreateReported
:1;
515 ULONG NoDebugInherit
:1;
516 ULONG ProcessExiting
:1;
517 ULONG ProcessDelete
:1;
518 ULONG Wow64SplitPages
:1;
520 ULONG OutswapEnabled
:1;
523 ULONG Wow64VaSpace4Gb
:1;
524 ULONG AddressSpaceInitialized
:2;
525 ULONG SetTimerResolution
:1;
526 ULONG BreakOnTermination
:1;
527 ULONG SessionCreationUnderway
:1;
529 ULONG ProcessInSession
:1;
530 ULONG OverrideAddressSpace
:1;
531 ULONG HasAddressSpace
:1;
532 ULONG LaunchPrefetched
:1;
533 ULONG InjectInpageErrors
:1;
535 ULONG ImageNotifyDone
:1;
536 ULONG PdeUpdateNeeded
:1;
539 ULONG CreateFailed
:1;
540 ULONG DefaultIoPriority
:3;
544 ULONG Flags
; /* 240 */
547 NTSTATUS ExitStatus
; /* 244 */
548 USHORT NextPageColor
; /* 248 */
553 UCHAR SubSystemMinorVersion
; /* 24A */
554 UCHAR SubSystemMajorVersion
; /* 24B */
556 USHORT SubSystemVersion
; /* 24A */
558 UCHAR PriorityClass
; /* 24C */
559 MM_AVL_TABLE VadRoot
; /* 250 */
560 ULONG Cookie
; /* 270 */
562 /***************************************************************
563 * REACTOS SPECIFIC START
564 ***************************************************************/
565 /* FIXME WILL BE DEPRECATED WITH PUSHLOCK SUPPORT IN 0.3.0 */
566 KEVENT LockEvent
; /* 274 */
567 ULONG LockCount
; /* 284 */
568 struct _KTHREAD
*LockOwner
; /* 288 */
570 /* FIXME MOVE TO AVL TREES */
571 MADDRESS_SPACE AddressSpace
; /* 28C */
575 #include <pshpack1.h>
576 typedef struct _PS_JOB_TOKEN_FILTER
578 UINT CapturedSidCount
;
579 PSID_AND_ATTRIBUTES CapturedSids
;
580 UINT CapturedSidsLength
;
581 UINT CapturedGroupCount
;
582 PSID_AND_ATTRIBUTES CapturedGroups
;
583 UINT CapturedGroupsLength
;
584 UINT CapturedPrivilegeCount
;
585 PLUID_AND_ATTRIBUTES CapturedPrivileges
;
586 UINT CapturedPrivilegesLength
;
587 } PS_JOB_TOKEN_FILTER
, *PPS_JOB_TOKEN_FILTER
;
593 LIST_ENTRY ProcessListHead
;
595 LARGE_INTEGER TotalUserTime
;
596 LARGE_INTEGER TotalKernelTime
;
597 LARGE_INTEGER ThisPeriodTotalUserTime
;
598 LARGE_INTEGER ThisPeriodTotalKernelTime
;
599 UINT TotalPageFaultCount
;
601 UINT ActiveProcesses
;
602 UINT TotalTerminatedProcesses
;
603 LARGE_INTEGER PerProcessUserTimeLimit
;
604 LARGE_INTEGER PerJobUserTimeLimit
;
606 UINT MinimumWorkingSetSize
;
607 UINT MaximumWorkingSetSize
;
608 UINT ActiveProcessLimit
;
611 UINT UIRestrictionsClass
;
612 UINT SecurityLimitFlags
;
614 PPS_JOB_TOKEN_FILTER Filter
;
615 UINT EndOfJobTimeAction
;
616 PVOID CompletionPort
;
619 UINT SchedulingClass
;
620 ULONGLONG ReadOperationCount
;
621 ULONGLONG WriteOperationCount
;
622 ULONGLONG OtherOperationCount
;
623 ULONGLONG ReadTransferCount
;
624 ULONGLONG WriteTransferCount
;
625 ULONGLONG OtherTransferCount
;
627 UINT ProcessMemoryLimit
;
629 UINT PeakProcessMemoryUsed
;
630 UINT PeakJobMemoryUsed
;
631 UINT CurrentJobMemoryUsed
;
632 KGUARDED_MUTEX MemoryLimitsLock
;
638 typedef struct _W32_CALLOUT_DATA
640 PW32_PROCESS_CALLBACK W32ProcessCallout
;
641 PW32_THREAD_CALLBACK W32ThreadCallout
;
642 PVOID UserGlobalAtomTableCallout
;
643 PVOID UserPowerEventCallout
;
644 PVOID UserPowerStateCallout
;
645 PVOID UserJobCallout
;
646 PVOID NtGdiUserFlushUserBatch
;
647 OB_OPEN_METHOD DesktopOpen
;
649 OB_DELETE_METHOD DesktopDelete
;
650 OB_OKAYTOCLOSE_METHOD WinstaOkayToClose
;
651 OB_DELETE_METHOD WinStaDelete
;
652 OB_PARSE_METHOD WinStaParse
;
653 OB_OPEN_METHOD WinStaOpen
;
655 /* FIXME: These are ROS-ONLY and are fixed in a future local patch */
656 OB_FIND_METHOD WinStaFind
;
657 OB_OPEN_METHOD WinStaCreate
;
658 OB_CREATE_METHOD DesktopCreate
;
659 } W32_CALLOUT_DATA
, *PW32_CALLOUT_DATA
;