1 #ifndef _WIN32K_WINSTA_H
2 #define _WIN32K_WINSTA_H
7 #define WINSTA_ROOT_NAME L"\\Windows\\WindowStations"
8 #define WINSTA_ROOT_NAME_LENGTH 23
10 /* Window Station Status Flags */
11 #define WSS_LOCKED (1)
12 #define WSS_NOINTERACTIVE (2)
21 typedef struct _WINSTATION_OBJECT
23 PVOID SharedHeap
; /* points to kmode memory! */
29 LIST_ENTRY DesktopListHead
;
30 PRTL_ATOM_TABLE AtomTable
;
31 HANDLE SystemMenuTemplate
;
39 BOOL ScreenSaverRunning
;
40 UINT ScreenSaverTimeOut
;
41 /* Should this be on each desktop ? */
42 BOOL ScreenSaverActive
;
46 ULONG cxWallpaper
, cyWallpaper
;
47 WALLPAPER_MODE WallpaperMode
;
50 struct _DESKTOP
* ActiveDesktop
;
52 PCLIPBOARDSYSTEM Clipboard
;
53 DWORD ClipboardSequenceNumber
;
55 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
57 extern WINSTATION_OBJECT
*InputWindowStation
;
58 extern PW32PROCESS LogonProcess
;
61 InitWindowStationImpl(VOID
);
64 CleanupWindowStationImpl(VOID
);
68 IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters
);
71 IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters
);
75 IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters
);
78 IntValidateWindowStationHandle(
79 HWINSTA WindowStation
,
80 KPROCESSOR_MODE AccessMode
,
81 ACCESS_MASK DesiredAccess
,
82 PWINSTATION_OBJECT
*Object
);
85 IntGetWindowStationObject(PWINSTATION_OBJECT Object
);
88 co_IntInitializeDesktopGraphics(VOID
);
91 IntEndDesktopGraphics(VOID
);
94 IntGetFullWindowStationName(
95 OUT PUNICODE_STRING FullName
,
96 IN PUNICODE_STRING WinStaName
,
97 IN OPTIONAL PUNICODE_STRING DesktopName
);
99 PWINSTATION_OBJECT FASTCALL
IntGetWinStaObj(VOID
);
101 #endif /* _WIN32K_WINSTA_H */