if (InterlockedExchange(&Prcb->DpcSetEventRequest, 0))
{
/* Signal it */
- KeSetEvent(&Prcb->DpcEvent, 0, 0);
+ KeSetEvent((PVOID)&Prcb->DpcEvent, 0, 0);
}
/* Lock dispatcher */
KefReleaseSpinLockFromDpcLevel(&DpcData->DpcLock);
/* Re-enable interrupts */
- Ke386EnableInterrupts();
+ KeEnableInterrupts();
/* Call the DPC */
DeferredRoutine(Dpc,
ASSERT_IRQL(DISPATCH_LEVEL);
/* Disable interrupts and keep looping */
- Ke386DisableInterrupts();
+ KeDisableInterrupts();
}
else
{
*/
if (((Dpc->Importance == HighImportance) ||
(DpcData->DpcQueueDepth >=
- Prcb->MaximumDpcQueueDepth)) &&
+ Prcb->MaximumDpcQueueDepth))
+#ifndef _M_PPC
+ &&
(!(AFFINITY_MASK(Cpu) & IdleProcessorMask) ||
- (Prcb->Sleeping)))
+ (Prcb->Sleeping))
+#endif
+ )
{
/* Set interrupt requested */
Prcb->DpcInterruptRequested = TRUE;
ASSERT_DPC(Dpc);
/* Disable interrupts */
- Ke386DisableInterrupts();
+ KeDisableInterrupts();
/* Get DPC data and type */
DpcType = Dpc->Type;
}
/* Re-enable interrupts */
- Ke386EnableInterrupts();
+ KeEnableInterrupts();
/* Return if the DPC was in the queue or not */
return DpcData ? TRUE : FALSE;