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.