VfMapTransferEx

VOID __fastcall VfMapTransferEx(){
  INT64 v0; 
  DMA_ADAPTER *v1; 
  __int64 v2; 
  UINT64 v3; 
  MDL *v4; 
  UINT64 v5; 
  __int64 v6; 
  _DMA_ADAPTER *v7; 
  UINT8 v8; 
  LIST_ENTRY *AdapterInformationInternal; 
  unsigned int v10; 
  unsigned int v11; 
  __int64(__fastcall *v12)(_DMA_ADAPTER *, MDL *, __int64, UINT64, int, unsigned int *, _DWORD, __int64, int, __int64, __int64); 
  int v13; 
  UINT64 v14; 
  int v15; 
  unsigned int *v16; 
  char v17; 
  __int64 v18; 
  int v19; 
  __int64 v20; 
  __int64 v21; 
  v4 = (MDL *)v0;
  v5 = v3;
  LOBYTE(v0) = 1;
  v6 = v2;
  v7 = v1;
  AdapterInformationInternal = ViGetAdapterInformationInternal(v1, v0);
  if( AdapterInformationInternal )
  {
    VF_ASSERT_MAX_IRQL(v8);
    VERIFY_BUFFER_LOCKED(v4);
    ViCheckAdapterBuffers((INT64)AdapterInformationInternal);
    v10 = ViCheckMdlLength(v4, v5, *v16);
    if( v10 )
    {
      v11 = v10;
      ViHalPreprocessOptions(
        &dword_140C12C94,
        (PSTR)"The provided MDL is not sufficient to satisfy the requested length",
        0x24ui64,
        v10,
        0i64,
        0i64,
        v14);
      VfReportIssueWithOptions(0xE6ui64, 0x24ui64, v11, 0i64, 0i64, &dword_140C12C94);
    }
  }
  LODWORD(v12) = ViGetRealDmaOperation(v7, 0xB8ui64);
  LOBYTE(v14) = v17;
  v13 = v12(v7, v4, v6, v5, v15, v16, v14, v18, v19, v20, v21);
  if( AdapterInformationInternal )
  {
    if( v13 >= 0 )
      INCREASE_MAPPED_TRANSFER_BYTE_COUNT((__int64)AdapterInformationInternal, *v16, 1);
  }
}

Referenced by:

No references.