HalpDmaRemoveFromEmergencyLogicalAddressQueue
CHAR __fastcall HalpDmaRemoveFromEmergencyLogicalAddressQueue(INT64 a1, _QWORD *a2){
UINT64 *v2;
CHAR v5;
_QWORD **v6;
unsigned __int8 v7;
unsigned __int64 v8;
_QWORD *v9;
_QWORD **v10;
_QWORD *v12;
v2 = (UINT64 *)(a1 + 560);
v5 = 0;
KeAcquireSpinLockRaiseToDpc((UINT64 *)(a1 + 560), (UINT64)a2);
v6 = (_QWORD **)(a1 + 568);
v8 = v7;
v9 = *v6;
if( *v6 != v6 )
{
while( 1 )
{
v10 = (_QWORD **)*v9;
if( v9 == a2 )
break;
v9 = (_QWORD *)*v9;
if( v10 == v6 )
goto LABEL_4;
}
v5 = 1;
v12 = (_QWORD *)v9[1];
if( v10[1] != v9 || (_QWORD *)*v12 != v9 )
__fastfail(3u);
*v12 = v10;
v10[1] = v12;
}
LABEL_4:
KxReleaseSpinLock(v2);
__writecr8(v8);
return v5;
}Referenced by:
HalCancelAdapterChannel
HalCancelAdapterChannelThin
HalpAllocateDmaResourcesInternal