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 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
46 extern WINSTATION_OBJECT
*InputWindowStation
;
47 extern PW32PROCESS LogonProcess
;
50 InitWindowStationImpl(VOID
);
53 CleanupWindowStationImpl(VOID
);
57 IntWinStaObjectOpen(IN OB_OPEN_REASON Reason
,
58 IN PEPROCESS Process OPTIONAL
,
60 IN ACCESS_MASK GrantedAccess
,
61 IN ULONG HandleCount
);
64 IntWinStaObjectDelete(PVOID DeletedObject
);
67 IntWinStaObjectFind(PVOID Object
,
73 IntWinStaObjectParse(PVOID Object
,
75 PUNICODE_STRING FullPath
,
80 IntValidateWindowStationHandle(
81 HWINSTA WindowStation
,
82 KPROCESSOR_MODE AccessMode
,
83 ACCESS_MASK DesiredAccess
,
84 PWINSTATION_OBJECT
*Object
);
87 IntGetWindowStationObject(PWINSTATION_OBJECT Object
);
90 co_IntInitializeDesktopGraphics(VOID
);
93 IntEndDesktopGraphics(VOID
);
96 IntGetFullWindowStationName(
97 OUT PUNICODE_STRING FullName
,
98 IN PUNICODE_STRING WinStaName
,
99 IN OPTIONAL PUNICODE_STRING DesktopName
);
101 PWINSTATION_OBJECT FASTCALL
IntGetWinStaObj(VOID
);
103 #endif /* _WIN32K_WINSTA_H */