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