• Eric Pouech's avatar
    server: Separate console and new group flag (CreateProcess). · 82b0bb3c
    Eric Pouech authored
    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: 's avatarEric Pouech <epouech@codeweavers.com>
    82b0bb3c
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...