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
14 LIST_ENTRY DesktopListHead
;
15 PRTL_ATOM_TABLE AtomTable
;
16 HANDLE SystemMenuTemplate
;
21 struct _DESKTOP
* ActiveDesktop
;
23 PTHREADINFO ptiClipLock
;
24 PTHREADINFO ptiDrawingClipboard
;
28 PCLIP pClipBase
; // Not a clip object.
29 DWORD cNumClipFormats
;
30 INT iClipSerialNumber
;
31 INT iClipSequenceNumber
;
32 INT fClipboardChanged
: 1;
33 INT fInDelayedRendering
: 1;
35 } WINSTATION_OBJECT
, *PWINSTATION_OBJECT
;
37 extern WINSTATION_OBJECT
*InputWindowStation
;
38 extern PPROCESSINFO LogonProcess
;
40 extern UNICODE_STRING gustrWindowStationsDir
;
42 #define WINSTA_READ STANDARD_RIGHTS_READ | \
43 WINSTA_ENUMDESKTOPS | \
45 WINSTA_READATTRIBUTES | \
48 #define WINSTA_WRITE STANDARD_RIGHTS_WRITE | \
49 WINSTA_ACCESSCLIPBOARD | \
50 WINSTA_CREATEDESKTOP | \
51 WINSTA_WRITEATTRIBUTES
53 #define WINSTA_EXECUTE STANDARD_RIGHTS_EXECUTE | \
54 WINSTA_ACCESSGLOBALATOMS | \
57 #define WINSTA_ACCESS_ALL STANDARD_RIGHTS_REQUIRED | \
58 WINSTA_ACCESSCLIPBOARD | \
59 WINSTA_ACCESSGLOBALATOMS | \
60 WINSTA_CREATEDESKTOP | \
61 WINSTA_ENUMDESKTOPS | \
63 WINSTA_EXITWINDOWS | \
64 WINSTA_READATTRIBUTES | \
66 WINSTA_WRITEATTRIBUTES
71 InitWindowStationImpl(VOID
);
72 NTSTATUS NTAPI
UserCreateWinstaDirectoy();
74 VOID APIENTRY
IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters
);
75 NTSTATUS APIENTRY
IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters
);
76 NTSTATUS NTAPI
IntWinstaOkToClose(PWIN32_OKAYTOCLOSEMETHOD_PARAMETERS Parameters
);
79 IntValidateWindowStationHandle(
80 HWINSTA WindowStation
,
81 KPROCESSOR_MODE AccessMode
,
82 ACCESS_MASK DesiredAccess
,
83 PWINSTATION_OBJECT
*Object
);
84 BOOL FASTCALL
UserSetProcessWindowStation(HWINSTA hWindowStation
);
86 BOOL FASTCALL
co_IntInitializeDesktopGraphics(VOID
);
87 VOID FASTCALL
IntEndDesktopGraphics(VOID
);