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
;
36 BOOL FontSmoothing
; /* enable */
37 UINT FontSmoothingType
; /* 1:Standard,2:ClearType */
38 /* FIXME: Big Icons (SPI_GETICONMETRICS?) */
44 BOOL ScreenSaverRunning
;
45 UINT ScreenSaverTimeOut
;
46 /* Should this be on each desktop ? */
47 BOOL ScreenSaverActive
;
51 ULONG cxWallpaper
, cyWallpaper
;
52 WALLPAPER_MODE WallpaperMode
;
55 struct _DESKTOP
* ActiveDesktop
;
57 PCLIPBOARDSYSTEM Clipboard
;
58 DWORD ClipboardSequenceNumber
;
60 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
62 extern WINSTATION_OBJECT
*InputWindowStation
;
63 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 IntValidateWindowStationHandle(
84 HWINSTA WindowStation
,
85 KPROCESSOR_MODE AccessMode
,
86 ACCESS_MASK DesiredAccess
,
87 PWINSTATION_OBJECT
*Object
);
90 IntGetWindowStationObject(PWINSTATION_OBJECT Object
);
93 co_IntInitializeDesktopGraphics(VOID
);
96 IntEndDesktopGraphics(VOID
);
99 IntGetFullWindowStationName(
100 OUT PUNICODE_STRING FullName
,
101 IN PUNICODE_STRING WinStaName
,
102 IN OPTIONAL PUNICODE_STRING DesktopName
);
104 PWINSTATION_OBJECT FASTCALL
IntGetWinStaObj(VOID
);