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