Fixed some bugs.
[reactos.git] / reactos / ntoskrnl / include / internal / ex.h
1 /*
2 * internal executive prototypes
3 */
4
5 #ifndef __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H
6 #define __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H
7
8 #include <ddk/ntddk.h>
9 #include <ntos/time.h>
10
11 typedef struct _WINSTATION_OBJECT
12 {
13 CSHORT Type;
14 CSHORT Size;
15
16 KSPIN_LOCK Lock;
17 UNICODE_STRING Name;
18 LIST_ENTRY DesktopListHead;
19 PRTL_ATOM_TABLE AtomTable;
20 PVOID HandleTable;
21 struct _DESKTOP_OBJECT* ActiveDesktop;
22 /* FIXME: Clipboard */
23 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
24
25 typedef struct _DESKTOP_OBJECT
26 {
27 CSHORT Type;
28 CSHORT Size;
29 LIST_ENTRY ListEntry;
30 KSPIN_LOCK Lock;
31 UNICODE_STRING Name;
32 /* Pointer to the associated window station. */
33 struct _WINSTATION_OBJECT *WindowStation;
34 /* Head of the list of windows in this desktop. */
35 LIST_ENTRY WindowListHead;
36 /* Pointer to the active queue. */
37 PVOID ActiveMessageQueue;
38 /* Handle of the desktop window. */
39 HANDLE DesktopWindow;
40 HANDLE PrevActiveWindow;
41 } DESKTOP_OBJECT, *PDESKTOP_OBJECT;
42
43
44 typedef VOID (*PLOOKASIDE_MINMAX_ROUTINE)(
45 POOL_TYPE PoolType,
46 ULONG Size,
47 PUSHORT MinimumDepth,
48 PUSHORT MaximumDepth);
49
50 /* GLOBAL VARIABLES *********************************************************/
51
52 TIME_ZONE_INFORMATION SystemTimeZoneInfo;
53
54 /* INITIALIZATION FUNCTIONS *************************************************/
55
56 VOID
57 ExpWin32kInit(VOID);
58
59 VOID
60 ExInit (VOID);
61 VOID
62 ExInitTimeZoneInfo (VOID);
63 VOID
64 ExInitializeWorkerThreads(VOID);
65 VOID
66 ExpInitLookasideLists(VOID);
67
68 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H */