Implement timer expiring too fast for KeDelayExecutionThread. Dedicated
to filip
Modified: trunk/reactos/ntoskrnl/ke/wait.c
_____
Modified: trunk/reactos/ntoskrnl/ke/wait.c
--- trunk/reactos/ntoskrnl/ke/wait.c 2005-03-18 23:00:54 UTC (rev
14183)
+++ trunk/reactos/ntoskrnl/ke/wait.c 2005-03-18 23:26:44 UTC (rev
14184)
@@ -126,8 +126,9 @@
/* Insert the Timer into the Timer Lists and enable it */
if (!KiInsertTimer(ThreadTimer, *Interval)) {
- /* FIXME: Unhandled case...what should we do? */
- DPRINT1("Could not create timer for
KeDelayExecutionThread\n");
+ /* FIXME: The timer already expired, we should find a new
ready thread */
+ Status = STATUS_SUCCESS;
+ break;
}
/* Handle Kernel Queues */
register ourselved as task manager window to make the
RegisterShellHookWindow() call working [thanks to Filip :)]
Modified: trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp
_____
Modified: trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp
--- trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp
2005-03-18 20:34:01 UTC (rev 14182)
+++ trunk/reactos/subsys/system/explorer/taskbar/taskbar.cpp
2005-03-18 23:00:54 UTC (rev 14183)
@@ -99,10 +99,15 @@
_next_id = IDC_FIRST_APP;
+ // register ourselved as task manager window to make the
following call to RegisterShellHookWindow working
+ DynamicFct<BOOL (WINAPI*)(HWND hwnd)>
SetTaskmanWindow(TEXT("user32"), "SetTaskmanWindow");
+ if (SetTaskmanWindow)
+ (*SetTaskmanWindow)(_hwnd);
+
DynamicFct<BOOL (WINAPI*)(HWND hwnd)>
RegisterShellHookWindow(TEXT("user32"), "RegisterShellHookWindow");
-
if (RegisterShellHookWindow) {
LOG(TEXT("Using shell hooks for notification of shell
events."));
+
(*RegisterShellHookWindow)(_hwnd);
} else {
LOG(TEXT("Shell hooks not available."));