VfAllocateCommonBuffer

VOID *__fastcall VfAllocateCommonBuffer(
        _DMA_ADAPTER *DmaAdapter,
        UINT64 Length,
        _LARGE_INTEGER *LogicalAddress,
        UINT8 CacheEnabled){
  unsigned int v4; 
  __int64(__fastcall *v8)(_DMA_ADAPTER *, _QWORD, _LIST_ENTRY **, __int64); 
  INT64 v9; 
  __int64(__fastcall *v10)(_DMA_ADAPTER *, _QWORD, _LIST_ENTRY **, __int64); 
  LIST_ENTRY *AdapterInformationInternal; 
  __int64 v12; 
  VOID *result; 
  _LIST_ENTRY *retaddr; 
  v4 = Length;
  LODWORD(v8) = ViGetRealDmaOperation(DmaAdapter, 0x10ui64);
  LOBYTE(v9) = 1;
  v10 = v8;
  AdapterInformationInternal = ViGetAdapterInformationInternal(DmaAdapter, v9);
  if( !AdapterInformationInternal
    || (VF_ASSERT_IRQL(0),
        (result = ViSpecialAllocateCommonBuffer(
                    (__int64(__fastcall *)(_QWORD, _QWORD, _LIST_ENTRY **, __int64))v10,
                    (__int64)AdapterInformationInternal,
                    retaddr,
                    v4,
                    LogicalAddress,
                    CacheEnabled)) == 0i64) )
  {
    LOBYTE(v12) = CacheEnabled;
    result = (VOID *)v10(DmaAdapter, v4, (_LIST_ENTRY **)LogicalAddress, v12);
    if( result )
    {
      if( AdapterInformationInternal )
        _InterlockedIncrement((volatile signed __int32 *)&AdapterInformationInternal[10].Blink + 1);
    }
  }
  return result;
}

Referenced by:

No references.