HalpDmaFindAdapterByDeviceId
INT64 *__fastcall HalpDmaFindAdapterByDeviceId(INT64 a1){
UINT64 v1;
INT64 *v2;
__int64 *v5;
UINT8 v6;
UINT8 v7;
INT64 *v8;
INT64 *v9;
v2 = 0i64;
if( !a1 )
return 0i64;
KeAcquireSpinLockRaiseToDpc(&HalpDmaAdapterListLock, v1);
v5 = (__int64 *)qword_140C4BCA8;
v7 = v6;
while( v5 != &HalpDmaAdapterList )
{
v8 = v5 - 57;
v9 = (INT64 *)v5[9];
if( v9 && IidAreIdsStrictlyEqual(v9, a1) )
{
if( ObReferenceObjectSafe(v8) )
v2 = v8;
break;
}
v5 = (__int64 *)v5[1];
}
KeReleaseSpinLock(&HalpDmaAdapterListLock, v7);
return v2;
}Referenced by:
HalpDmaAllocateChildAdapterV3