Jacek Caban : conhost: Use IOCTL_CONDRV_SETUP_INPUT to initialize input in Unix mode.

Alexandre Julliard julliard at winehq.org
Mon Sep 21 15:12:16 CDT 2020


Module: wine
Branch: master
Commit: c47f64bd3e5ca6e10096dc9b39d3df2cc9be95a0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c47f64bd3e5ca6e10096dc9b39d3df2cc9be95a0

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Sep 21 17:06:37 2020 +0200

conhost: Use IOCTL_CONDRV_SETUP_INPUT to initialize input in Unix mode.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/conhost/conhost.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/programs/conhost/conhost.c b/programs/conhost/conhost.c
index 0de55af14c..c637b16379 100644
--- a/programs/conhost/conhost.c
+++ b/programs/conhost/conhost.c
@@ -1625,6 +1625,14 @@ static DWORD WINAPI tty_input( void *param )
     BOOL signaled;
     NTSTATUS status;
 
+    if (console->is_unix)
+    {
+        unsigned int h = condrv_handle( console->tty_input );
+        status = NtDeviceIoControlFile( console->server, NULL, NULL, NULL, &io, IOCTL_CONDRV_SETUP_INPUT,
+                                        &h, sizeof(h), NULL, 0 );
+        if (status) ERR( "input setup failed: %#x\n", status );
+    }
+
     event = CreateEventW( NULL, TRUE, FALSE, NULL );
 
     for (;;)
@@ -1682,6 +1690,13 @@ static DWORD WINAPI tty_input( void *param )
 
     EnterCriticalSection( &console_section );
     if (console->read_ioctl) read_complete( console, status, NULL, 0, FALSE );
+    if (console->is_unix)
+    {
+        unsigned int h = 0;
+        status = NtDeviceIoControlFile( console->server, NULL, NULL, NULL, &io, IOCTL_CONDRV_SETUP_INPUT,
+                                        &h, sizeof(h), NULL, 0 );
+        if (status) ERR( "input restore failed: %#x\n", status );
+    }
     CloseHandle( console->input_thread );
     console->input_thread = NULL;
     LeaveCriticalSection( &console_section );




More information about the wine-cvs mailing list