From 65ed2a4587ee0ae03bcd3b17c2800dc5d59740c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Tue, 19 May 2009 20:25:46 +0000 Subject: [PATCH] It doesn't hurt to try to start Blue service before accessing it svn path=/trunk/; revision=40990 --- .../win32/csrss/win32csr/tuiconsole.c | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/reactos/subsystems/win32/csrss/win32csr/tuiconsole.c b/reactos/subsystems/win32/csrss/win32csr/tuiconsole.c index fecbb21d2d2..f7c43aef4c2 100644 --- a/reactos/subsystems/win32/csrss/win32csr/tuiconsole.c +++ b/reactos/subsystems/win32/csrss/win32csr/tuiconsole.c @@ -31,6 +31,35 @@ TuiConsoleWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) return DefWindowProcW(hWnd, msg, wParam, lParam); } +static BOOL FASTCALL +TuiStartService(LPCWSTR lpServiceName) +{ + SC_HANDLE hSCManager = NULL; + SC_HANDLE hService = NULL; + BOOL ret = FALSE; + + hSCManager = OpenSCManagerW(NULL, NULL, 0); + if (hSCManager == NULL) + goto cleanup; + + hService = OpenServiceW(hSCManager, lpServiceName, SERVICE_START); + if (hService == NULL) + goto cleanup; + + ret = StartServiceW(hService, 0, NULL); + if (!ret) + goto cleanup; + + ret = TRUE; + +cleanup: + if (hSCManager != NULL) + CloseServiceHandle(hSCManager); + if (hService != NULL) + CloseServiceHandle(hService); + return ret; +} + static BOOL FASTCALL TuiInit(DWORD OemCP) { @@ -38,6 +67,8 @@ TuiInit(DWORD OemCP) DWORD BytesReturned; WNDCLASSEXW wc; + TuiStartService(L"Blue"); + ConsoleDeviceHandle = CreateFileW(L"\\\\.\\BlueScreen", FILE_ALL_ACCESS, 0, NULL, OPEN_EXISTING, 0, NULL); if (INVALID_HANDLE_VALUE == ConsoleDeviceHandle)