/* GLOBALS ******************************************************************/
-#ifndef LIBCAPTIVE
-
static KSPIN_LOCK DispatcherDatabaseLock;
static BOOLEAN WaitSet = FALSE;
static KIRQL oldlvl = PASSIVE_LEVEL;
static PKTHREAD Owner = NULL;
-#endif /* LIBCAPTIVE */
-
/* FUNCTIONS *****************************************************************/
VOID KeInitializeDispatcherHeader(DISPATCHER_HEADER* Header,
InitializeListHead(&(Header->WaitListHead));
}
-#ifndef LIBCAPTIVE
VOID KeAcquireDispatcherDatabaseLock(BOOLEAN Wait)
/*
Owner = KeGetCurrentThread();
}
+#ifndef LIBCAPTIVE
+
VOID KeReleaseDispatcherDatabaseLockAtDpcLevel(BOOLEAN Wait)
{
DPRINT("KeReleaseDispatcherDatabaseLockAtDpcLevel(Wait %x)\n", Wait);
}
}
+#endif /* LIBCAPTIVE */
+
VOID KeReleaseDispatcherDatabaseLock(BOOLEAN Wait)
{
DPRINT("KeReleaseDispatcherDatabaseLock(Wait %x)\n",Wait);
}
}
+#ifndef LIBCAPTIVE
+
static VOID KiSideEffectsBeforeWake(DISPATCHER_HEADER* hdr,
PKTHREAD Thread,
PBOOLEAN Abandoned)
return(Status);
}
+#endif /* LIBCAPTIVE */
+
VOID KeInitializeDispatcher(VOID)
{
KeInitializeSpinLock(&DispatcherDatabaseLock);
}
+#ifndef LIBCAPTIVE
+
NTSTATUS STDCALL
NtWaitForMultipleObjects(IN ULONG Count,
IN HANDLE Object [],