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
;
37 BOOL FontSmoothing
; /* enable */
38 UINT FontSmoothingType
; /* 1:Standard,2:ClearType */
39 /* FIXME: Big Icons (SPI_GETICONMETRICS?) */
45 BOOL ScreenSaverRunning
;
46 UINT ScreenSaverTimeOut
;
47 /* Should this be on each desktop ? */
48 BOOL ScreenSaverActive
;
52 ULONG cxWallpaper
, cyWallpaper
;
53 WALLPAPER_MODE WallpaperMode
;
56 struct _DESKTOP
* ActiveDesktop
;
58 PCLIPBOARDSYSTEM Clipboard
;
59 DWORD ClipboardSequenceNumber
;
61 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
63 extern WINSTATION_OBJECT
*InputWindowStation
;
64 extern PPROCESSINFO LogonProcess
;
67 InitWindowStationImpl(VOID
);
70 CleanupWindowStationImpl(VOID
);
74 IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters
);
77 IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters
);
81 IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters
);
84 IntValidateWindowStationHandle(
85 HWINSTA WindowStation
,
86 KPROCESSOR_MODE AccessMode
,
87 ACCESS_MASK DesiredAccess
,
88 PWINSTATION_OBJECT
*Object
);
91 IntGetWindowStationObject(PWINSTATION_OBJECT Object
);
94 co_IntInitializeDesktopGraphics(VOID
);
97 IntEndDesktopGraphics(VOID
);
100 IntGetFullWindowStationName(
101 OUT PUNICODE_STRING FullName
,
102 IN PUNICODE_STRING WinStaName
,
103 IN OPTIONAL PUNICODE_STRING DesktopName
);
105 PWINSTATION_OBJECT FASTCALL
IntGetWinStaObj(VOID
);
107 #endif /* _WIN32K_WINSTA_H */