Initial revision
[reactos.git] / reactos / include / ddk / pstypes.h
1 #ifndef __INCLUDE_DDK_PSTYPES_H
2 #define __INCLUDE_DDK_PSTYPES_H
3
4 #include <kernel32/heap.h>
5
6 typedef struct _CLIENT_ID
7 {
8 HANDLE UniqueProcess;
9 HANDLE UniqueThread;
10 } CLIENT_ID, *PCLIENT_ID;
11
12 //typedef void* HEAP;
13 typedef void* HANDLE_TABLE;
14 typedef void* ATOMTABLE;
15
16 typedef struct _pPebInfo {
17 LPWSTR lpCommandLine;
18 DWORD cb;
19 HANDLE hStdInput; //18
20 HANDLE hStdput;
21 HANDLE hStdError;
22 LPWSTR lpEnvironment;
23 DWORD dwX;
24 DWORD dwY;
25 DWORD dwXSize;
26 DWORD dwYSize;
27 DWORD dwXCountChars;
28 DWORD dwYCountChars;
29 DWORD dwFillAttribute;
30 DWORD dwFlags;
31 DWORD wShowWindow;
32 LPTSTR lpTitle;
33 LPTSTR lpDesktop;
34 LPTSTR reserved;
35 DWORD cbReserved2;
36 LPTSTR lpReserved1;
37 } PEBINFO;
38
39 typedef struct _NT_PEB
40 {
41
42 LONG ImageBaseAddress;
43 DWORD nActiveStdHandle;
44 void *HeapIndex;
45 DWORD dwTlsBits[2]; // tls in use bits
46 WORD NumberOfProcessors;
47 WORD NtGlobalFlag;
48 DWORD dwCriticalSectionTime;
49 DWORD dwHeapReserve;
50 DWORD dwHeapCommit;
51 DWORD dwHeapDecommitFreeBlockThreshold;
52 DWORD dwNumberOfHeaps;
53 DWORD dwMaxiumNumberOfHeaps;
54 PEBINFO *pPebInfo;
55 HEAP *pProcessHeap;
56 HANDLE_TABLE htGDISharedHandleTable;
57 ATOMTABLE LocalAtomTable;
58 CRITICAL_SECTION *pCriticalSection;
59 WORD wMajorVersion;
60 WORD wMinorVersion;
61 WORD wBuildNumber;
62 WORD wPlatformId;
63 } NT_PEB;
64
65 typedef NT_PEB *PPEB;
66
67
68
69 typedef struct _NT_TIB {
70 struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
71 PVOID StackBase;
72 PVOID StackLimit;
73 PVOID SubSystemTib;
74 union {
75 PVOID FiberData;
76 ULONG Version;
77 } s;
78 PVOID ArbitraryUserPointer;
79 struct _NT_TIB *Self;
80 } NT_TIB, *PNT_TIB;
81
82 typedef struct _NT_TEB
83 {
84
85 NT_TIB Tib;
86 DWORD dwProcessId;
87 DWORD dwThreadId;
88 HANDLE hRPC;
89 NT_PEB *pPeb;
90 DWORD dwErrCode;
91 WORD nMutexCount;
92 LCID Locale;
93 //HQUEUE MessageQueue
94 DWORD dwTlsIndex ;
95 LPVOID TlsData[512];
96
97
98 } NT_TEB;
99
100
101 typedef NT_TEB *PINITIAL_TEB;
102
103 typedef struct _EPROCESS
104 {
105 } EPROCESS, *PEPROCESS;
106
107 typedef struct _ETHREAD
108 {
109 } ETHREAD, *PETHREAD;
110
111 #endif /* __INCLUDE_DDK_PSTYPES_H */