3 #define WINSTA_ROOT_NAME L"\\Windows\\WindowStations"
4 #define WINSTA_ROOT_NAME_LENGTH 23
6 /* Window Station Status Flags */
8 #define WSS_NOINTERACTIVE (2)
17 typedef struct _WINSTATION_OBJECT
19 PVOID SharedHeap
; /* points to kmode memory! */
25 LIST_ENTRY DesktopListHead
;
26 PRTL_ATOM_TABLE AtomTable
;
27 HANDLE SystemMenuTemplate
;
33 BOOL FontSmoothing
; /* enable */
34 UINT FontSmoothingType
; /* 1:Standard,2:ClearType */
35 /* FIXME: Big Icons (SPI_GETICONMETRICS?) */
41 BOOL ScreenSaverRunning
;
42 UINT ScreenSaverTimeOut
;
43 /* Should this be on each desktop ? */
44 BOOL ScreenSaverActive
;
48 ULONG cxWallpaper
, cyWallpaper
;
49 WALLPAPER_MODE WallpaperMode
;
52 struct _DESKTOP
* ActiveDesktop
;
54 PCLIPBOARDSYSTEM Clipboard
;
55 DWORD ClipboardSequenceNumber
;
57 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
59 extern WINSTATION_OBJECT
*InputWindowStation
;
60 extern PPROCESSINFO LogonProcess
;
66 InitWindowStationImpl(VOID
);
69 CleanupWindowStationImpl(VOID
);
73 IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters
);
76 IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters
);
80 IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters
);
83 IntWinstaOkToClose(PWIN32_OKAYTOCLOSEMETHOD_PARAMETERS Parameters
);
86 IntValidateWindowStationHandle(
87 HWINSTA WindowStation
,
88 KPROCESSOR_MODE AccessMode
,
89 ACCESS_MASK DesiredAccess
,
90 PWINSTATION_OBJECT
*Object
);
93 IntGetWindowStationObject(PWINSTATION_OBJECT Object
);
96 co_IntInitializeDesktopGraphics(VOID
);
99 IntEndDesktopGraphics(VOID
);
102 IntGetFullWindowStationName(
103 OUT PUNICODE_STRING FullName
,
104 IN PUNICODE_STRING WinStaName
,
105 IN OPTIONAL PUNICODE_STRING DesktopName
);
107 PWINSTATION_OBJECT FASTCALL
IntGetWinStaObj(VOID
);
110 UserSetProcessWindowStation(HWINSTA hWindowStation
);