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