VfAllocateDomainCommonBuffer

NTSTATUS __stdcall VfAllocateDomainCommonBuffer(
        _DMA_ADAPTER *DmaAdapter,
        VOID *DomainHandle,
        _LARGE_INTEGER *MaximumAddress,
        UINT64 Length,
        UINT64 Flags,
        _MEMORY_CACHING_TYPE *CacheType,
        UINT64 PreferredNode,
        _LARGE_INTEGER *LogicalAddress,
        VOID **VirtualAddress){
  unsigned int v12; 
  _LARGE_INTEGER *PoolWithTag; 
  NTSTATUS v14; 
  VOID *RealDmaOperation; 

  v12 = Length;
  PoolWithTag = (_LARGE_INTEGER *)ExAllocatePoolWithTag(0x200ui64, 0x18ui64, 1449943368i64);
  if( !PoolWithTag )
    return -1073741670;
  RealDmaOperation = ViGetRealDmaOperation((ULONG_PTR)DmaAdapter, 0xE8ui64);
  v14 = ((__int64(__fastcall *)(_DMA_ADAPTER *, VOID *, _LARGE_INTEGER *, _QWORD, _DWORD, _MEMORY_CACHING_TYPE *, _DWORD, _LARGE_INTEGER *, VOID **))RealDmaOperation)(
          DmaAdapter,
          DomainHandle,
          MaximumAddress,
          v12,
          Flags,
          CacheType,
          PreferredNode,
          LogicalAddress,
          VirtualAddress);
  if( v14 < 0 )
  {
    ExFreePoolWithTag(PoolWithTag, 0);
  }
  else
  {
    PoolWithTag[2] = *LogicalAddress;
    ViHalTrackDomainCommonBuffer((__int64 *)PoolWithTag);
  }
  return v14;
}

Referenced by:

No references.