/* INCLUDES ******************************************************************/
#define NDEBUG
#include "w32csr.h"
+#include "file.h"
#include <debug.h>
/* Not defined in any header file */
extern VOID WINAPI PrivateCsrssManualGuiCheck(LONG Check);
-extern VOID WINAPI InitializeAppSwitchHook();
+extern LIST_ENTRY DosDeviceHistory;
+extern RTL_CRITICAL_SECTION Win32CsrDefineDosDeviceCritSec;
/* GLOBALS *******************************************************************/
CSRSS_DEFINE_API(SET_HISTORY_NUMBER_COMMANDS, CsrSetHistoryNumberCommands),
CSRSS_DEFINE_API(GET_HISTORY_INFO, CsrGetHistoryInfo),
CSRSS_DEFINE_API(SET_HISTORY_INFO, CsrSetHistoryInfo),
+ CSRSS_DEFINE_API(GET_TEMP_FILE, CsrGetTempFile),
+ CSRSS_DEFINE_API(DEFINE_DOS_DEVICE, CsrDefineDosDevice),
{ 0, 0, NULL }
};
+static HHOOK hhk = NULL;
+
/* FUNCTIONS *****************************************************************/
+LRESULT
+CALLBACK
+KeyboardHookProc(
+ int nCode,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ return CallNextHookEx(hhk, nCode, wParam, lParam);
+}
+
BOOL WINAPI
DllMain(HANDLE hDll,
DWORD dwReason,
if (DLL_PROCESS_ATTACH == dwReason)
{
Win32CsrDllHandle = hDll;
- InitializeAppSwitchHook();
+//
+// HACK HACK HACK ReactOS to BOOT! Initialization BUG ALERT! See bug 5655.
+//
+ hhk = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProc, NULL, 0);
+// BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT!
+// BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT!
+// BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT! BUG ALERT!
}
+ if (DLL_PROCESS_DETACH == dwReason)
+ {
+ CsrCleanupDefineDosDevice();
+ }
return TRUE;
}
ServerProcs->ProcessInheritProc = Win32CsrDuplicateHandleTable;
ServerProcs->ProcessDeletedProc = Win32CsrReleaseConsole;
+ Status = RtlInitializeCriticalSection(&Win32CsrDefineDosDeviceCritSec);
+ InitializeListHead(&DosDeviceHistory);
return TRUE;
}