• 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
..
tests Loading commit data...
Makefile.in Loading commit data...
console.c Loading commit data...
debug.c Loading commit data...
file.c Loading commit data...
kernelbase.h Loading commit data...
kernelbase.rc Loading commit data...
kernelbase.rgs Loading commit data...
kernelbase.spec Loading commit data...
loader.c Loading commit data...
locale.c Loading commit data...
main.c Loading commit data...
memory.c Loading commit data...
path.c Loading commit data...
process.c Loading commit data...
registry.c Loading commit data...
security.c Loading commit data...
string.c Loading commit data...
sync.c Loading commit data...
thread.c Loading commit data...
version.c Loading commit data...
volume.c Loading commit data...
winerror.mc Loading commit data...