server: Separate console and new group flag (CreateProcess).
We were using bit 1 of RTL_USER_PROCESS_PARAMETERS for two different cases:
- rightfully, as a sign to block ctrl-c events from being processed by
handlers (and by default, terminating the process)
- But this was also used to request for the creation of a new process group.
This patch properly separates the two use cases, by using the
ProcessGroupId field in RTL_USER_PROCESS_PARAMETERS (checked that Win10
behaves as this patch in RtlCreateUserProcess wrt.
RTL_USER_PROCESS_PARAMETERS ProcessGroupId usage input/output).
Introduce process_group_id in startup_info_t and use it to pass it to
server. ProcessGroupId field in RTL_USER_PROCESS_PARAMETERS is now properly
set.
Note: this will change some external behavior.
- before this patch, a child process created with Ctrl-C disabled
(ConsoleFlags set), couldn't turn it on as the process was detached
from unix console.
- now, SIGINT handling is moved to kernelbase (and can be turned on/off at
application will),
- when creating a new windows group id, the child will be detached from
unix console, so will no longer receives the SIGINT from ctrl-c in unix
console (if parent was attached to this unix console).
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
Showing
Please
register
or
sign in
to comment