HalpDmaReferenceDomainObject

NTSTATUS __stdcall HalpDmaReferenceDomainObject(INT64 a1, UINT64 a2, INT64 *a3, CHAR a4){
  char v5; 
  unsigned __int8 v6; 
  _QWORD *v7; 
  unsigned __int64 v8; 

  v5 = 0;
  v6 = KeAcquireSpinLockRaiseToDpc(&stru_140C49BB0.Lock);
  v7 = (_QWORD *)qword_140C49BD0;
  v8 = v6;
  while( v7 != &qword_140C49BD0 )
  {
    if( (_QWORD *)a1 == v7 )
    {
      ++*(_DWORD *)(a1 + 128);
      v5 = 1;
      break;
    }
    v7 = (_QWORD *)*v7;
  }
  KxReleaseSpinLock(&stru_140C49BB0.Lock);
  __writecr8(v8);
  return v5 == 0 ? 0xC000000D : 0;
}

Referenced by:

HalAllocateCommonBufferVector
HalJoinDmaDomain
HalpAllocateCommonBufferThin
HalpAllocateDomainCommonBufferInternal
HalpDmaIsAutomaticDomain