Module: wine Branch: master Commit: 57a222356cb675beec38268c2736628e0fb3d231 URL: https://source.winehq.org/git/wine.git/?a=commit;h=57a222356cb675beec38268c2...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Aug 13 16:00:37 2020 +0200
kernel32: Set PEB console handle in AllocConsole.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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 );