else
{
/* Release the spinlock, without clearing any flags and exit */
- KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
+ if (OldIrql != NULL)
+ KeReleaseSpinLock(&DeviceExtension->SpinLock, *OldIrql);
+ else
+ KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
return;
}
LunExtension->SortKey++;
/* Release the spinlock */
- KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
+ if (OldIrql != NULL)
+ KeReleaseSpinLock(&DeviceExtension->SpinLock, *OldIrql);
+ else
+ KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
/* Start the next pending request */
IoStartPacket(DeviceExtension->Common.DeviceObject, NextIrp, (PULONG)NULL, NULL);
else
{
/* Release the spinlock */
- KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
+ if (OldIrql != NULL)
+ KeReleaseSpinLock(&DeviceExtension->SpinLock, *OldIrql);
+ else
+ KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
}
}