reactos/win32ss/user
Hermès Bélusca-Maïto 7bc2ddd669
[WIN32K:NTUSER] Fixes for NtUserCreateWindowStation(), IntCreateWindowStation() and NtUserOpenWindowStation().
CORE-11933 and PR #621.

We are potentially going to modify the window station name to be
created or opened, by one with the format "Service-0x<luidhigh>-<luidlow>$",
in case the user provides an empty name.
Since we want to use the user-mode ObjectAttributes structure pointer so
that the Object manager can correctly perform the access checks and the
capture, we actually need to construct the new window station name in the
user memory space! This allows us then to fetch the new name in the
ObjectAttributes structure so that Ob can use it.
All of this is performed under SEH.

For NtUserOpenWindowStation(), we also need to be Windows-compatible and
detect whether user-mode gave instead the special "Service-0x00000000-00000000$"
name (observed via API monitoring) that is used when one tries to open a
window station with empty name.
2018-08-19 22:18:35 +02:00
..
ntuser [WIN32K:NTUSER] Fixes for NtUserCreateWindowStation(), IntCreateWindowStation() and NtUserOpenWindowStation(). 2018-08-19 22:18:35 +02:00
rtl [WIN32SS] Fix DrawText wrt DT_CALCRECT | DT_VCENTER (#745) 2018-08-15 19:50:19 +02:00
user32 [USER32] Implement the special case in CreateWindowStationW() that, when no window station name is provided (either NULL or empty string), does not open any WindowStation directory handle to be passed to the Win32k function. 2018-08-19 22:18:22 +02:00
winsrv [CONSRV] Implement support for file/directory drag-and-drop (#692). 2018-08-09 14:08:05 +02:00