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