:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ddk / pstypes.h
1 #ifndef __INCLUDE_DDK_PSTYPES_H
2 #define __INCLUDE_DDK_PSTYPES_H
3
4 #include <ntos/ps.h>
5
6 #include <ddk/i386/tss.h>
7 #include <napi/teb.h>
8
9 #ifndef TLS_MINIMUM_AVAILABLE
10 #define TLS_MINIMUM_AVAILABLE   (64)
11 #endif
12 #ifndef MAX_PATH
13 #define MAX_PATH        (260)
14 #endif
15
16 struct _EPROCESS;
17 struct _KPROCESS;
18 struct _ETHREAD;
19 struct _KTHREAD;
20
21 typedef NTSTATUS STDCALL (*PKSTART_ROUTINE)(PVOID StartContext);
22
23 typedef VOID STDCALL (*PCREATE_PROCESS_NOTIFY_ROUTINE)(HANDLE ParentId,
24                                                        HANDLE ProcessId,
25                                                        BOOLEAN Create);
26
27 typedef VOID STDCALL (*PCREATE_THREAD_NOTIFY_ROUTINE)(HANDLE ProcessId,
28                                                       HANDLE ThreadId,
29                                                       BOOLEAN Create);
30
31 typedef struct _STACK_INFORMATION
32 {
33         PVOID   BaseAddress;
34         PVOID   UpperAddress;
35 } STACK_INFORMATION, *PSTACK_INFORMATION;
36
37 typedef ULONG THREADINFOCLASS;
38
39 struct _KPROCESS;
40
41 #define LOW_PRIORITY (0)
42 #define LOW_REALTIME_PRIORITY (16)
43 #define HIGH_PRIORITY (31)
44 #define MAXIMUM_PRIORITY (32)
45
46
47 #ifdef __NTOSKRNL__
48 extern struct _EPROCESS* EXPORTED PsInitialSystemProcess;
49 extern POBJECT_TYPE EXPORTED PsProcessType;
50 extern POBJECT_TYPE EXPORTED PsThreadType;
51 #else
52 extern struct _EPROCESS* IMPORTED PsInitialSystemProcess;
53 extern POBJECT_TYPE IMPORTED PsProcessType;
54 extern POBJECT_TYPE IMPORTED PsThreadType;
55 #endif
56
57 #endif /* __INCLUDE_DDK_PSTYPES_H */