1 #ifndef _WIN32K_WINSTA_H
2 #define _WIN32K_WINSTA_H
6 #define WINSTA_ROOT_NAME L"\\Windows\\WindowStations"
7 #define WINSTA_ROOT_NAME_LENGTH 23
9 /* Window Station Status Flags */
10 #define WSS_LOCKED (1)
11 #define WSS_NOINTERACTIVE (2)
20 typedef struct _WINSTATION_OBJECT
22 PVOID SharedHeap
; /* points to kmode memory! */
28 LIST_ENTRY DesktopListHead
;
29 PRTL_ATOM_TABLE AtomTable
;
30 HANDLE SystemMenuTemplate
;
38 ULONG cxWallpaper
, cyWallpaper
;
39 WALLPAPER_MODE WallpaperMode
;
42 struct _DESKTOP_OBJECT
* ActiveDesktop
;
43 /* FIXME: Clipboard */
44 LIST_ENTRY HotKeyListHead
;
45 FAST_MUTEX HotKeyListLock
;
46 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
48 extern WINSTATION_OBJECT
*InputWindowStation
;
49 extern PW32PROCESS LogonProcess
;
52 InitWindowStationImpl(VOID
);
55 CleanupWindowStationImpl(VOID
);
59 IntWinStaObjectOpen(OB_OPEN_REASON Reason
,
63 ACCESS_MASK GrantedAccess
);
66 IntWinStaObjectDelete(PVOID DeletedObject
);
69 IntWinStaObjectFind(PVOID Object
,
75 IntWinStaObjectParse(PVOID Object
,
77 PUNICODE_STRING FullPath
,
82 IntValidateWindowStationHandle(
83 HWINSTA WindowStation
,
84 KPROCESSOR_MODE AccessMode
,
85 ACCESS_MASK DesiredAccess
,
86 PWINSTATION_OBJECT
*Object
);
89 IntGetWindowStationObject(PWINSTATION_OBJECT Object
);
92 co_IntInitializeDesktopGraphics(VOID
);
95 IntEndDesktopGraphics(VOID
);
98 IntGetFullWindowStationName(
99 OUT PUNICODE_STRING FullName
,
100 IN PUNICODE_STRING WinStaName
,
101 IN OPTIONAL PUNICODE_STRING DesktopName
);
103 PWINSTATION_OBJECT FASTCALL
IntGetWinStaObj(VOID
);
105 #endif /* _WIN32K_WINSTA_H */