KeInsertDeviceQueue

VOID __fastcall KeInsertDeviceQueue(_KDEVICE_QUEUE *DeviceQueue, _KDEVICE_QUEUE_ENTRY *DeviceQueueEntry){
  UINT8 v2; 
  unsigned __int8 v5; 
  unsigned __int8 Busy; 
  _LIST_ENTRY *Blink; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  v5 = 0;
  KeAcquireInStackQueuedSpinLockForDpc(&DeviceQueue->Lock, &LockHandle, v2);
  Busy = DeviceQueue->Busy;
  DeviceQueue->Busy = 1;
  if( Busy == 1 )
  {
    Blink = DeviceQueue->DeviceListHead.Blink;
    if( Blink->Flink != &DeviceQueue->DeviceListHead )
      __fastfail(3u);
    DeviceQueueEntry->DeviceListEntry.Flink = &DeviceQueue->DeviceListHead;
    v5 = 1;
    DeviceQueueEntry->DeviceListEntry.Blink = Blink;
    Blink->Flink = &DeviceQueueEntry->DeviceListEntry;
    DeviceQueue->DeviceListHead.Blink = &DeviceQueueEntry->DeviceListEntry;
  }
  DeviceQueueEntry->Inserted = v5;
  KeReleaseInStackQueuedSpinLockForDpc(&LockHandle);
}

Referenced by:

HalAllocateAdapterChannelV2
IoAllocateController
IoStartPacket