3 #define WINSTA_OBJ_DIR L"\\Windows\\WindowStations"
4 #define SESSION_DIR L"\\Sessions"
6 /* Window Station Status Flags */
8 #define WSS_NOINTERACTIVE (2)
10 typedef struct _WINSTATION_OBJECT
16 LIST_ENTRY DesktopListHead
;
17 PRTL_ATOM_TABLE AtomTable
;
18 HANDLE SystemMenuTemplate
;
23 struct _DESKTOP
* ActiveDesktop
;
25 PTHREADINFO ptiClipLock
;
26 PTHREADINFO ptiDrawingClipboard
;
30 PCLIP pClipBase
; // Not a clip object.
31 DWORD cNumClipFormats
;
32 INT iClipSerialNumber
;
33 INT iClipSequenceNumber
;
34 INT fClipboardChanged
: 1;
35 INT fInDelayedRendering
: 1;
37 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
39 extern WINSTATION_OBJECT
*InputWindowStation
;
40 extern PPROCESSINFO LogonProcess
;
42 extern UNICODE_STRING gustrWindowStationsDir
;
44 #define WINSTA_READ STANDARD_RIGHTS_READ | \
45 WINSTA_ENUMDESKTOPS | \
47 WINSTA_READATTRIBUTES | \
50 #define WINSTA_WRITE STANDARD_RIGHTS_WRITE | \
51 WINSTA_ACCESSCLIPBOARD | \
52 WINSTA_CREATEDESKTOP | \
53 WINSTA_WRITEATTRIBUTES
55 #define WINSTA_EXECUTE STANDARD_RIGHTS_EXECUTE | \
56 WINSTA_ACCESSGLOBALATOMS | \
59 #define WINSTA_ACCESS_ALL STANDARD_RIGHTS_REQUIRED | \
60 WINSTA_ACCESSCLIPBOARD | \
61 WINSTA_ACCESSGLOBALATOMS | \
62 WINSTA_CREATEDESKTOP | \
63 WINSTA_ENUMDESKTOPS | \
65 WINSTA_EXITWINDOWS | \
66 WINSTA_READATTRIBUTES | \
68 WINSTA_WRITEATTRIBUTES
73 InitWindowStationImpl(VOID
);
74 NTSTATUS NTAPI
UserCreateWinstaDirectory();
76 VOID APIENTRY
IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters
);
77 NTSTATUS APIENTRY
IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters
);
78 NTSTATUS NTAPI
IntWinstaOkToClose(PWIN32_OKAYTOCLOSEMETHOD_PARAMETERS Parameters
);
81 IntValidateWindowStationHandle(
82 HWINSTA WindowStation
,
83 KPROCESSOR_MODE AccessMode
,
84 ACCESS_MASK DesiredAccess
,
85 PWINSTATION_OBJECT
*Object
);
86 BOOL FASTCALL
UserSetProcessWindowStation(HWINSTA hWindowStation
);
88 BOOL FASTCALL
co_IntInitializeDesktopGraphics(VOID
);
89 VOID FASTCALL
IntEndDesktopGraphics(VOID
);