[PATCH 0/4] Series short description

Eric Pouech eric.pouech at gmail.com
Thu Mar 17 02:27:03 CDT 2022


supersedes 227544

As described in bugzilla ticket, when calling CreateProcess:
- with "default" console inheritance (no CREATE_NEW_CONSOLE
  nor DETACHED_PROCESS flags),
- when parent is not attached to a console
- and when the child's subsystem is CUI
, native behaves as if CREATE_NEW_CONSOLE was passed.

builtin doesn't...

this serie:
- adds a test case for showing the CUI/GUI discrepancies
- fixes kernelbase accordingly
- but also requires to fix all usage of CreateProcess in Wine Code
  that would now generate the creation of a console
  + a couple of programs moved into the GUI subsystem (to avoid console
    creation on invocation)
  + when looking to the other usage of CreateProcess, I only convinced
    myself to adapt one of them

V1 => V2:
- don't mess up with the number of patches in the serie
- no longer modify makedep for creating cui vs gui test executable, but
  copy current *_test.exe executable and adapt its subsystem to the need

V2 => V3:
- removed the hacks in wow64 redirect, and let programs/uninstaller and
  programs/wusa belong to the GUI subsystem instead
- force console creation for wine initial process when a) none of the unix 
  fd are attached to a TTY, b) the initial process is in CUI subsystem

V3 => V4:
- included Jacek's comments:
  + removed unneeded casts
  + move CreateProcess change in programs/services into a separate patch
  + I didn't change programs/start as you suggested. Testing on W10 shows
    that 'start /b cui.exe' from a cmd prompt just reuses the current
    console.

V4 => V5:
- removed patches applied in V4
- added tweaks in start.exe not so create a console when detached

And Marvin will generate errors for Chinese and Japanese VM in console
testing that are independant of this serie.

Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---

Eric Pouech (4):
      dlls/kernel32/tests: add some console tests about creating cui vs gui processes
      programs/services: start services detached from console
      programs/start: force no console creation when using start /exec
      dlls/kernelbase: handle corner case in CreateProcess


 dlls/kernel32/tests/console.c | 85 +++++++++++++++++++++++++++++++++++
 dlls/kernelbase/process.c     |  6 ++-
 programs/services/services.c  |  2 +-
 programs/start/start.c        |  7 ++-
 4 files changed, 96 insertions(+), 4 deletions(-)




More information about the wine-devel mailing list