VfFlushAdapterBuffersEx

NTSTATUS __stdcall VfFlushAdapterBuffersEx(
        ULONG_PTR DmaAdapter,
        VOID *MapRegisterBase,
        VOID *Offset,
        UINT64 Length,
        UINT64 WriteToDevice,
        UINT8 WriteToDevicea){
  _DMA_ADAPTER *v9; 
  __int64(__fastcall *RealDmaOperation)(_DMA_ADAPTER *, VOID *, VOID *, UINT64, _DWORD, UINT8); 
  INT64 v11; 
  __int64(__fastcall *v12)(_DMA_ADAPTER *, VOID *, VOID *, UINT64, _DWORD, UINT8); 
  UINT8 v13; 
  _LIST_ENTRY *AdapterInformationInternal; 
  NTSTATUS result; 

  v9 = *(_DMA_ADAPTER **)&DmaAdapter;
  RealDmaOperation = (__int64(__fastcall *)(_DMA_ADAPTER *, VOID *, VOID *, UINT64, _DWORD, UINT8))ViGetRealDmaOperation(DmaAdapter, 0xD0ui64);
  LOBYTE(v11) = 1;
  v12 = RealDmaOperation;
  AdapterInformationInternal = ViGetAdapterInformationInternal(v9, v11);
  if( AdapterInformationInternal )
    VF_ASSERT_MAX_IRQL(v13);
  result = v12(v9, MapRegisterBase, Offset, Length, WriteToDevice, WriteToDevicea);
  if( AdapterInformationInternal )
  {
    if( !result )
      _InterlockedExchange((volatile __int32 *)&AdapterInformationInternal[11].Blink + 1, 0);
  }
  return result;
}

Referenced by:

No references.