4 #define W32PF_CONSOLEAPPLICATION 0x00000001
5 #define W32PF_FORCEOFFFEEDBACK 0x00000002
6 #define W32PF_STARTGLASS 0x00000004
7 #define W32PF_WOW 0x00000008
8 #define W32PF_READSCREENACCESSGRANTED 0x00000010
9 #define W32PF_INITIALIZED 0x00000020
10 #define W32PF_APPSTARTING 0x00000040
11 #define W32PF_WOW64 0x00000080
12 #define W32PF_ALLOWFOREGROUNDACTIVATE 0x00000100
13 #define W32PF_OWNDCCLEANUP 0x00000200
14 #define W32PF_SHOWSTARTGLASSCALLED 0x00000400
15 #define W32PF_FORCEBACKGROUNDPRIORITY 0x00000800
16 #define W32PF_TERMINATED 0x00001000
17 #define W32PF_CLASSESREGISTERED 0x00002000
18 #define W32PF_THREADCONNECTED 0x00004000
19 #define W32PF_PROCESSCONNECTED 0x00008000
20 #define W32PF_WAKEWOWEXEC 0x00010000
21 #define W32PF_WAITFORINPUTIDLE 0x00020000
22 #define W32PF_IOWINSTA 0x00040000
23 #define W32PF_CONSOLEFOREGROUND 0x00080000
24 #define W32PF_OLELOADED 0x00100000
25 #define W32PF_SCREENSAVER 0x00200000
26 #define W32PF_IDLESCREENSAVER 0x00400000
27 #define W32PF_ICONTITLEREGISTERED 0x10000000
28 #define W32PF_DPIAWARE 0x20000000
30 #define W32PF_NOWINDOWGHOSTING (0x01000000)
31 #define W32PF_MANUALGUICHECK (0x02000000)
32 #define W32PF_CREATEDWINORDC (0x04000000)
34 extern BOOL ClientPfnInit
;
35 extern HINSTANCE hModClient
;
36 extern HANDLE hModuleWin
; // This Win32k Instance.
37 extern PCLS SystemClassList
;
38 extern BOOL RegisteredSysClasses
;
40 typedef struct _WIN32HEAP WIN32HEAP
, *PWIN32HEAP
;
43 // FIXME! Move to ntuser.h
51 typedef struct _W32THREAD
60 DWORD dwEngAcquireCount
;
63 } W32THREAD
, *PW32THREAD
;
65 typedef struct _THREADINFO
70 struct _USER_MESSAGE_QUEUE
* MessageQueue
;
71 struct _KBL
* KeyboardLayout
;
72 PCLIENTTHREADINFO pcti
;
73 struct _DESKTOP
* rpdesk
;
74 PDESKTOPINFO pDeskInfo
;
75 PCLIENTINFO pClientInfo
;
77 PUNICODE_STRING pstrAppName
;
78 struct _USER_SENT_MESSAGE
*pusmCurrent
;
83 UINT cPaintsReady
; /* Count of paints pending. */
84 UINT cTimersReady
; /* Count of timers pending. */
88 struct _USER_MESSAGE_QUEUE
* pqAttach
;
89 PTHREADINFO ptiSibling
;
92 LPARAM lParamHkCurrent
;
93 WPARAM wParamHkCurrent
;
94 struct tagSBTRACK
* pSBTrack
;
95 HANDLE hEventQueueClient
;
96 PKEVENT pEventQueueServer
;
100 LIST_ENTRY aphkStart
[NB_HOOKS
];
101 CLIENTTHREADINFO cti
; // Used only when no Desktop or pcti NULL.
104 LIST_ENTRY WindowListHead
;
105 LIST_ENTRY W32CallbackListHead
;
106 SINGLE_LIST_ENTRY ReferencesList
;
107 ULONG cExclusiveLocks
;
113 typedef struct _W32HEAP_USER_MAPPING
115 struct _W32HEAP_USER_MAPPING
*Next
;
120 } W32HEAP_USER_MAPPING
, *PW32HEAP_USER_MAPPING
;
124 Information from STARTUPINFOW, psdk/winbase.h.
125 Set from PsGetCurrentProcess()->Peb->ProcessParameters.
127 typedef struct tagUSERSTARTUPINFO
130 DWORD dwX
; // STARTF_USEPOSITION StartupInfo->dwX/Y
132 DWORD dwXSize
; // STARTF_USESIZE StartupInfo->dwX/YSize
134 DWORD dwFlags
; // STARTF_ StartupInfo->dwFlags
135 WORD wShowWindow
; // StartupInfo->wShowWindow
137 } USERSTARTUPINFO
, *PUSERSTARTUPINFO
;
139 typedef struct _W32PROCESS
144 PKEVENT InputIdleEvent
;
145 DWORD StartCursorHideTime
;
146 struct _W32PROCESS
* NextStart
;
148 PVOID pBrushAttrList
;
151 LONG UserHandleCount
;
152 PEX_PUSH_LOCK GDIPushLock
; /* Locking Process during access to structure. */
153 RTL_AVL_TABLE GDIEngUserMemAllocTable
; /* Process AVL Table. */
154 LIST_ENTRY GDIDcAttrFreeList
;
155 LIST_ENTRY GDIBrushAttrFreeList
;
156 } W32PROCESS
, *PW32PROCESS
;
160 typedef struct _PROCESSINFO
164 PTHREADINFO ptiMainThread
;
165 struct _DESKTOP
* rpdeskStartup
;
166 PCLS pclsPrivateList
;
169 DWORD dwhmodLibLoadedMask
;
170 HANDLE ahmodLibLoaded
[CLIBS
];
171 struct _WINSTATION_OBJECT
*prpwinsta
;
173 ACCESS_MASK amwinsta
;
179 DWORD dwRegisteredClasses
;
181 LIST_ENTRY MenuListHead
;
182 FAST_MUTEX PrivateFontListLock
;
183 LIST_ENTRY PrivateFontListHead
;
184 FAST_MUTEX DriverObjListLock
;
185 LIST_ENTRY DriverObjListHead
;
186 struct _KBL
* KeyboardLayout
; // THREADINFO only
187 W32HEAP_USER_MAPPING HeapMappings
;