:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / 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 */