[PATCH 1/2] user32: Allow creating windows using null driver for invisible winstations.

Jacek Caban jacek at codeweavers.com
Thu Feb 9 06:42:49 CST 2017


On 08.02.2017 11:02, Alexandre Julliard wrote:
> Jacek Caban <jacek at codeweavers.com> writes:
>
>> The main motivation is Office 2016 installer, which creates a
>> non-HWND_MESSAGE window in its service (although it seems to be for
>> message only purposes). It is supported on Windows.
>>
>> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
> Hacking only CreateWindow means the driver will get calls for windows
> that it hasn't created, that's ugly. Also the window station can change
> dynamically, so we need better mechanisms to handle that sort of thing.
> Ideally the driver would also have support for it, so that you could do
> things like having separate window stations for separate X displays
> within the same session.

The problem of services is somewhat different than that. I used
winstation to determine that situation in user32, but the real problem
is that we don't support sessions. Services should run in a separated
session (they do in on Windows since Vista). Processes can't interact
with windows from other sessions, so if a driver in other process gets
calls for windows that a service created, that's because we don't
enforce that yet. Thus I think we eventually want services (and any
session 0 process) to use null driver.

That said, in my opinion, a fix for separated X displays is mostly
separated issue. What would ideally be done for services is support for
multiple sessions, including limiting windows interaction to single
session. Given that so far I don't know any real world needing proper
sessions support, I was hoping we could have a simpler solution.

Thanks,
Jacek



More information about the wine-devel mailing list