Jacek Caban : kernel32: Use IOCTL_CONDRV_GET_MODE in VerifyConsoleIoHandle.

Alexandre Julliard julliard at winehq.org
Mon Jul 13 16:08:49 CDT 2020


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jul 13 13:26:53 2020 +0200

kernel32: Use IOCTL_CONDRV_GET_MODE in VerifyConsoleIoHandle.

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

---

 dlls/kernel32/console.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index e21c8a890e..f294b15635 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -249,16 +249,10 @@ HANDLE WINAPI OpenConsoleW(LPCWSTR name, DWORD access, BOOL inherit, DWORD creat
  */
 BOOL WINAPI VerifyConsoleIoHandle(HANDLE handle)
 {
-    BOOL ret;
-
-    if (!is_console_handle(handle)) return FALSE;
-    SERVER_START_REQ(get_console_mode)
-    {
-	req->handle = console_handle_unmap(handle);
-	ret = !wine_server_call( req );
-    }
-    SERVER_END_REQ;
-    return ret;
+    IO_STATUS_BLOCK io;
+    DWORD mode;
+    return !NtDeviceIoControlFile( handle, NULL, NULL, NULL, &io, IOCTL_CONDRV_GET_MODE,
+                                   NULL, 0, &mode, sizeof(mode) );
 }
 
 /******************************************************************
@@ -1181,7 +1175,7 @@ BOOL CONSOLE_Init(RTL_USER_PROCESS_PARAMETERS *params)
      */
     if (!params->hStdInput || params->hStdInput == INVALID_HANDLE_VALUE)
         params->hStdInput = 0;
-    else if (VerifyConsoleIoHandle(console_handle_map(params->hStdInput)))
+    else if (VerifyConsoleIoHandle(params->hStdInput))
     {
         params->hStdInput = console_handle_map(params->hStdInput);
         save_console_mode(params->hStdInput);
@@ -1189,12 +1183,12 @@ BOOL CONSOLE_Init(RTL_USER_PROCESS_PARAMETERS *params)
 
     if (!params->hStdOutput || params->hStdOutput == INVALID_HANDLE_VALUE)
         params->hStdOutput = 0;
-    else if (VerifyConsoleIoHandle(console_handle_map(params->hStdOutput)))
+    else if (VerifyConsoleIoHandle(params->hStdOutput))
         params->hStdOutput = console_handle_map(params->hStdOutput);
 
     if (!params->hStdError || params->hStdError == INVALID_HANDLE_VALUE)
         params->hStdError = 0;
-    else if (VerifyConsoleIoHandle(console_handle_map(params->hStdError)))
+    else if (VerifyConsoleIoHandle(params->hStdError))
         params->hStdError = console_handle_map(params->hStdError);
 
     return TRUE;




More information about the wine-cvs mailing list