[PATCH v4 3/4] include/condrv.h, server: using negative values for console pseudo handles

Eric Pouech eric.pouech at gmail.com
Mon Apr 11 08:05:03 CDT 2022


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

---
 include/wine/condrv.h |    6 +++---
 server/process.c      |    4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/wine/condrv.h b/include/wine/condrv.h
index 452ce552da1..2d763d0b821 100644
--- a/include/wine/condrv.h
+++ b/include/wine/condrv.h
@@ -188,8 +188,8 @@ struct condrv_ctrl_event
 };
 
 /* Wine specific values for console inheritance (params->ConsoleHandle) */
-#define CONSOLE_HANDLE_ALLOC            UlongToHandle(1)
-#define CONSOLE_HANDLE_ALLOC_NO_WINDOW  UlongToHandle(2)
-#define CONSOLE_HANDLE_SHELL            UlongToHandle(3)
+#define CONSOLE_HANDLE_ALLOC            LongToHandle(-1)
+#define CONSOLE_HANDLE_ALLOC_NO_WINDOW  LongToHandle(-2)
+#define CONSOLE_HANDLE_SHELL            LongToHandle(-3)
 
 #endif /* _INC_CONDRV */
diff --git a/server/process.c b/server/process.c
index 65e2aa70de2..d1407204718 100644
--- a/server/process.c
+++ b/server/process.c
@@ -1333,8 +1333,8 @@ DECL_HANDLER(new_process)
     /* connect to the window station */
     connect_process_winstation( process, parent_thread, parent );
 
-    /* set the process console */
-    if (info->data->console > 3)
+    /* inherit the process console, but keep pseudo handles (< 0), and 0 (= not attached to a console) as is */
+    if ((int)info->data->console > 0)
         info->data->console = duplicate_handle( parent, info->data->console, process,
                                                 0, 0, DUPLICATE_SAME_ACCESS );
 




More information about the wine-devel mailing list