HalpDmaReferenceDomainObject

INT64 __fastcall HalpDmaReferenceDomainObject(INT64 a1){
  UINT64 v1; 
  char v3; 
  __int64 *v4; 
  unsigned __int8 v5; 
  unsigned __int64 v6; 
  v3 = 0;
  KeAcquireSpinLockRaiseToDpc(&HalpDmaDomainListLock, v1);
  v4 = (__int64 *)HalpDmaDomainList;
  v6 = v5;
  while( v4 != &HalpDmaDomainList )
  {
    if( (__int64 *)a1 == v4 )
    {
      ++*(_DWORD *)(a1 + 128);
      v3 = 1;
      break;
    }
    v4 = (__int64 *)*v4;
  }
  KxReleaseSpinLock(&HalpDmaDomainListLock);
  __writecr8(v6);
  return v3 == 0 ? 0xC000000D : 0;
}

Referenced by:

HalAllocateCommonBufferVector
HalJoinDmaDomain
HalpAllocateCommonBufferThin
HalpAllocateDomainCommonBufferInternal
HalpDmaIsAutomaticDomain