HalpDmaFindAdapterByDeviceObject
_LIST_ENTRY *__stdcall HalpDmaFindAdapterByDeviceObject(_DEVICE_OBJECT *DeviceObject){
_LIST_ENTRY *v2;
unsigned __int64 v3;
__int64 *i;
_LIST_ENTRY *v5;
if( !DeviceObject )
return 0i64;
v2 = 0i64;
v3 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(&HalpDmaAdapterListLock);
for( i = (__int64 *)HalpDmaAdapterList; i != &HalpDmaAdapterList; i = (__int64 *)*i )
{
v5 = (_LIST_ENTRY *)(i - 57);
if( (_DEVICE_OBJECT *)i[8] == DeviceObject )
{
if( ObReferenceObjectSafeWithTag((INT64)(i - 57), 1953261124i64) )
v2 = v5;
break;
}
}
KxReleaseSpinLock(&HalpDmaAdapterListLock);
__writecr8(v3);
return v2;
}Referenced by:
HalGetAdapterV2
HalGetAdapterV3