IoFreeController

VOID __stdcall IoFreeController(_CONTROLLER_OBJECT *ControllerObject){
  _KDEVICE_QUEUE *p_DeviceWaitQueue; 
  _KDEVICE_QUEUE_ENTRY *v2; 
  p_DeviceWaitQueue = &ControllerObject->DeviceWaitQueue;
  do
    v2 = KeRemoveDeviceQueue(p_DeviceWaitQueue);
  while( v2
       && ((unsigned __int64(__fastcall *)(unsigned int *, _LIST_ENTRY *, _QWORD, _LIST_ENTRY *))v2[1].DeviceListEntry.Flink)(
            &v2[-4].SortKey,
            v2[-2].DeviceListEntry.Flink,
            0i64,
            v2[1].DeviceListEntry.Blink) == 2 );
}

Referenced by:

IoAllocateController