KeAcquireInStackQueuedSpinLockForDpc

VOID __stdcall KeAcquireInStackQueuedSpinLockForDpc(UINT64 *SpinLock, _KLOCK_QUEUE_HANDLE *LockHandle){
  WORK_QUEUE_TYPE v2; 
  v2 = *((_DWORD *)KeGetCurrentPrcb() + 3147);
  if( (v2 & 0x10000) != 0 )
  {
    KeAcquireInStackQueuedSpinLock(SpinLock, LockHandle);
  }
  else
  {
    LockHandle->LockQueue.Next = 0i64;
    LockHandle->LockQueue.Lock = SpinLock;
    KxAcquireQueuedSpinLock((PIO_WORKITEM)LockHandle, (PIO_WORKITEM_ROUTINE)SpinLock, v2, LockHandle);
  }
}

Referenced by:

KeInsertByKeyDeviceQueue
KeInsertDeviceQueue
KeRemoveByKeyDeviceQueue
KeRemoveByKeyDeviceQueueIfBusy
KeRemoveDeviceQueue