2 * internal executive prototypes
5 #ifndef __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H
6 #define __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H
8 #define NTOS_MODE_KERNEL
11 /* one systemcursor for custom cursors */
12 #define SYSCURSORCOUNT (14 + 1)
14 typedef struct _CURSORCLIP_INFO
21 } CURSORCLIP_INFO, *PCURSORCLIP_INFO;
23 typedef struct _SYSCURSOR
30 } SYSCURSOR, *PSYSCURSOR;
32 typedef struct _SYSTEM_CURSORINFO
38 BOOL SafetySwitch, SafetySwitch2;
39 FAST_MUTEX CursorMutex;
40 CURSORCLIP_INFO CursorClipInfo;
41 SYSCURSOR SystemCursors[SYSCURSORCOUNT];
48 } SYSTEM_CURSORINFO, *PSYSTEM_CURSORINFO;
50 typedef struct _WINSTATION_OBJECT
57 LIST_ENTRY DesktopListHead;
58 PRTL_ATOM_TABLE AtomTable;
60 HANDLE SystemMenuTemplate;
61 SYSTEM_CURSORINFO SystemCursor;
62 struct _DESKTOP_OBJECT* ActiveDesktop;
63 /* FIXME: Clipboard */
64 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
66 typedef struct _DESKTOP_OBJECT
73 /* Pointer to the associated window station. */
74 struct _WINSTATION_OBJECT *WindowStation;
75 /* Pointer to the active queue. */
76 PVOID ActiveMessageQueue;
77 /* Handle of the desktop window. */
79 HANDLE PrevActiveWindow;
80 struct _WINDOW_OBJECT* CaptureWindow;
81 } DESKTOP_OBJECT, *PDESKTOP_OBJECT;
84 typedef VOID (*PLOOKASIDE_MINMAX_ROUTINE)(
88 PUSHORT MaximumDepth);
90 /* GLOBAL VARIABLES *********************************************************/
92 TIME_ZONE_INFORMATION SystemTimeZoneInfo;
93 extern POBJECT_TYPE ExEventPairObjectType;
96 /* INITIALIZATION FUNCTIONS *************************************************/
104 ExInitTimeZoneInfo (VOID);
106 ExInitializeWorkerThreads(VOID);
108 ExpInitLookasideLists(VOID);
110 /* OTHER FUNCTIONS **********************************************************/
113 ExpSwapThreadEventPair(
114 IN struct _ETHREAD* Thread,
115 IN struct _KEVENT_PAIR* EventPair
119 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H */