ULONG Period;
DPC_QUEUE_ENTRY DpcEntry[MAX_TIMER_DPCS];
PKSPIN_LOCK_QUEUE LockQueue;
-#ifdef CONFIG_SMP
PKPRCB Prcb = KeGetCurrentPrcb();
-#endif
/* Disable interrupts */
_disable();
/* Start looping all DPC Entries */
for (i = 0; DpcCalls; DpcCalls--, i++)
{
+#if DBG
+ /* Clear DPC Time */
+ Prcb->DebugDpcTime = 0;
+#endif
+
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
/* Start looping all DPC Entries */
for (i = 0; DpcCalls; DpcCalls--, i++)
{
+#if DBG
+ /* Clear DPC Time */
+ Prcb->DebugDpcTime = 0;
+#endif
+
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
/* Start looping all DPC Entries */
for (i = 0; DpcCalls; DpcCalls--, i++)
{
+#if DBG
+ /* Clear DPC Time */
+ Prcb->DebugDpcTime = 0;
+#endif
+
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
PKDPC TimerDpc;
ULONG Period;
DPC_QUEUE_ENTRY DpcEntry[MAX_TIMER_DPCS];
-#ifdef CONFIG_SMP
PKPRCB Prcb = KeGetCurrentPrcb();
-#endif
/* Query system */
KeQuerySystemTime((PLARGE_INTEGER)&SystemTime);
/* Start looping all DPC Entries */
for (i = 0; DpcCalls; DpcCalls--, i++)
{
+#if DBG
+ /* Clear DPC Time */
+ Prcb->DebugDpcTime = 0;
+#endif
+
/* Call the DPC */
DpcEntry[i].Routine(DpcEntry[i].Dpc,
DpcEntry[i].Context,
/* Decrease the queue depth */
DpcData->DpcQueueDepth--;
+#if DBG
/* Clear DPC Time */
Prcb->DebugDpcTime = 0;
+#endif
/* Release the lock */
KeReleaseSpinLockFromDpcLevel(&DpcData->DpcLock);