Threads[i].Signal = FALSE;
Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, NULL, NULL, NULL, WaitForEventThread, &Threads[i]);
ok_eq_hex(Status, STATUS_SUCCESS);
- Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE,
-#ifdef _PROPER_NT_EXPORTS
- *PsThreadType,
-#else
- PsThreadType,
-#endif
- KernelMode, (PVOID *)&Threads[i].Thread, NULL);
+ Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL);
ok_eq_hex(Status, STATUS_SUCCESS);
ThreadObjects[i] = Threads[i].Thread;
Priority = KeQueryPriorityThread(Threads[i].Thread);
{
KEVENT Event;
KIRQL Irql;
- KIRQL Irqls[] = { PASSIVE_LEVEL, APC_LEVEL, DISPATCH_LEVEL, HIGH_LEVEL };
+ KIRQL Irqls[] = { PASSIVE_LEVEL, APC_LEVEL, DISPATCH_LEVEL };
INT i;
KPRIORITY PriorityIncrement;
for (i = 0; i < sizeof Irqls / sizeof Irqls[0]; ++i)
{
- /* DRIVER_IRQL_NOT_LESS_OR_EQUAL (TODO: on MP only?) */
- if (Irqls[i] > DISPATCH_LEVEL && KmtIsCheckedBuild)
- return;
KeRaiseIrql(Irqls[i], &Irql);
TestEventFunctional(&Event, NotificationEvent, Irqls[i]);
TestEventFunctional(&Event, SynchronizationEvent, Irqls[i]);
for (i = 0; i < sizeof Irqls / sizeof Irqls[0]; ++i)
{
/* creating threads above DISPATCH_LEVEL... nope */
- if (Irqls[i] >= DISPATCH_LEVEL && KmtIsCheckedBuild)
+ if (Irqls[i] >= DISPATCH_LEVEL)
continue;
KeRaiseIrql(Irqls[i], &Irql);
trace("IRQL: %u\n", Irqls[i]);