VF_FIND_INACTIVE_ADAPTER_AND_REMOVE

_LIST_ENTRY *__fastcall VF_FIND_INACTIVE_ADAPTER_AND_REMOVE(_LIST_ENTRY *a1, UINT64 a2){
  _LIST_ENTRY *v3; 
  unsigned __int8 v4; 
  unsigned __int64 v5; 
  _LIST_ENTRY *i; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 
  v3 = 0i64;
  KeAcquireSpinLockRaiseToDpc(&qword_140D49088, a2);
  v5 = v4;
  for( i = ViAdapterList.Flink; &ViAdapterList != i; i = i->Flink )
  {
    if( i[1].Blink == a1 && (SHIDWORD(i[2].Flink) <= 0 || LOBYTE(i[2].Flink) == 1) )
    {
      Flink = i->Flink;
      v3 = i;
      Blink = i->Blink;
      if( i->Flink->Blink != i || Blink->Flink != i )
        __fastfail(3u);
      Blink->Flink = Flink;
      Flink->Blink = Blink;
      break;
    }
  }
  KxReleaseSpinLock(&qword_140D49088);
  __writecr8(v5);
  return v3;
}

Referenced by:

VfGetDmaAdapter