VfAllocateCommonBufferEx

VOID *__stdcall VfAllocateCommonBufferEx(
        ULONG_PTR DmaAdapter,
        _LARGE_INTEGER *Length,
        UINT64 LogicalAddress,
        _LARGE_INTEGER *CacheEnabled,
        UINT8 PreferredNode,
        UINT64 PreferredNodea){
  ULONG_PTR v7; 
  _DMA_ADAPTER *v9; 
  VOID *RealDmaOperation; 
  INT64 v11; 
  __int64(__fastcall *v12)(_DMA_ADAPTER *, _LARGE_INTEGER *, _QWORD, _LARGE_INTEGER *, int, _DWORD); 
  _LIST_ENTRY *AdapterInformationInternal; 
  VOID *result; 
  int v15; 
  UINT64 v16; 

  v7 = LogicalAddress;
  v9 = *(_DMA_ADAPTER **)&DmaAdapter;
  RealDmaOperation = ViGetRealDmaOperation(DmaAdapter, 0x98ui64);
  LOBYTE(v11) = 1;
  v12 = (__int64(__fastcall *)(_DMA_ADAPTER *, _LARGE_INTEGER *, _QWORD, _LARGE_INTEGER *, int, _DWORD))RealDmaOperation;
  AdapterInformationInternal = ViGetAdapterInformationInternal(v9, v11);
  if( (MmVerifierData & 0x4000000) != 0 && Length && Length->QuadPart < 0x100000000ui64 )
    VerifierBugCheckIfAppropriate(0xC4ui64, 0x141u, Length->QuadPart, v7, 0, v16);
  LOBYTE(v15) = PreferredNode;
  result = (VOID *)v12(v9, Length, v7, CacheEnabled, v15, PreferredNodea);
  if( result )
  {
    if( AdapterInformationInternal )
      _InterlockedIncrement((volatile signed __int32 *)&AdapterInformationInternal[10].Blink + 1);
  }
  return result;
}

Referenced by:

No references.