[NTOS:KE] Implement KeAcquireInStackQueuedSpinLockForDpc & KeReleaseInStackQueuedSpinLockForDpc

This commit is contained in:
Jérôme Gardou 2021-05-26 17:05:15 +02:00 committed by Jérôme Gardou
parent 56d0bc31ce
commit e312a40ae2

View file

@ -413,25 +413,32 @@ KeReleaseSpinLockForDpc(IN PKSPIN_LOCK SpinLock,
} }
/* /*
* @unimplemented * @implemented
*/ */
VOID VOID
FASTCALL FASTCALL
KeAcquireInStackQueuedSpinLockForDpc(IN PKSPIN_LOCK SpinLock, KeAcquireInStackQueuedSpinLockForDpc(IN PKSPIN_LOCK SpinLock,
IN PKLOCK_QUEUE_HANDLE LockHandle) IN PKLOCK_QUEUE_HANDLE LockHandle)
{ {
UNIMPLEMENTED; LockHandle->OldIrql = KeGetCurrentIrql();
return; if (LockHandle->OldIrql >= DISPATCH_LEVEL)
KeAcquireInStackQueuedSpinLockAtDpcLevel(SpinLock, LockHandle);
else
KeAcquireInStackQueuedSpinLock(SpinLock, LockHandle);
} }
/* /*
* @unimplemented * @implemented
*/ */
VOID VOID
FASTCALL FASTCALL
KeReleaseInStackQueuedSpinLockForDpc(IN PKLOCK_QUEUE_HANDLE LockHandle) KeReleaseInStackQueuedSpinLockForDpc(IN PKLOCK_QUEUE_HANDLE LockHandle)
{ {
UNIMPLEMENTED; if (LockHandle->OldIrql >= DISPATCH_LEVEL)
KeReleaseInStackQueuedSpinLockFromDpcLevel(LockHandle);
else
KeReleaseInStackQueuedSpinLock(LockHandle);
} }
/* /*