Jacek Caban : kernel32: Set PEB console handle in AllocConsole.

Alexandre Julliard julliard at winehq.org
Thu Aug 13 15:11:52 CDT 2020


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Aug 13 16:00:37 2020 +0200

kernel32: Set PEB console handle in AllocConsole.

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

---

 dlls/kernel32/tests/console.c | 1 -
 dlls/kernelbase/console.c     | 6 +++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index 32a1275e3e..01c2361396 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -3592,7 +3592,6 @@ static void test_FreeConsole(void)
     HANDLE handle;
     BOOL ret;
 
-    todo_wine
     ok(RtlGetCurrentPeb()->ProcessParameters->ConsoleHandle != NULL, "ConsoleHandle is NULL\n");
 
     ret = FreeConsole();
diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c
index 15153dbb6f..7b84fc8f73 100644
--- a/dlls/kernelbase/console.c
+++ b/dlls/kernelbase/console.c
@@ -266,7 +266,7 @@ BOOL WINAPI AllocConsole(void)
     STARTUPINFOW app_si, console_si;
     WCHAR buffer[1024], cmd[256];
     PROCESS_INFORMATION pi;
-    HANDLE event, std_in;
+    HANDLE event, std_in, console;
     DWORD mode;
     BOOL ret;
 
@@ -324,6 +324,10 @@ BOOL WINAPI AllocConsole(void)
     }
     CloseHandle( event );
     if (!ret || !init_console_std_handles()) goto error;
+    console = CreateFileW( L"CONIN$", GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, 0, NULL, OPEN_EXISTING, 0, 0 );
+    if (console == INVALID_HANDLE_VALUE) goto error;
+    RtlGetCurrentPeb()->ProcessParameters->ConsoleHandle = console;
+
     TRACE( "Started wineconsole pid=%08x tid=%08x\n", pi.dwProcessId, pi.dwThreadId );
 
     RtlLeaveCriticalSection( &console_section );




More information about the wine-cvs mailing list