HvcallFastExtended

INT64 __fastcall HvcallFastExtended(INT64 a1, _QWORD *a2, UINT64 a3, _QWORD *a4, UINT64 a5){
  unsigned int v6; 
  char v9; 
  INT64 v10; 
  INT64 v11; 
  INT64 a5a; 
  int v14; 
  char v15; 
  __int16 v16; 
  char v17; 
  LARGE_INTEGER v18[2]; 
  __int128 v19; 
  v6 = a3;
  *(_OWORD *)&v18[0].LowPart = 0i64;
  v19 = 0i64;
  if( (BYTE4(xmmword_140CFB490) & 0x10) != 0 )
  {
    v9 = 1;
    EtwGetKernelTraceTimestamp(v18, 0xA0000010ui64);
  }
  else
  {
    v9 = 0;
  }
  if( (_DWORD)a5 )
  {
    LODWORD(a5a) = (unsigned int)a5 >> 4;
    v10 = HvcallpExtendedFastHypercallWithOutput(a1, a2, (v6 + 15) >> 4, a4, a5a);
  }
  else
  {
    v10 = HvcallpExtendedFastHypercall(a1, a2, v6);
  }
  v11 = v10;
  if( v9 )
  {
    v17 = 0;
    v14 = (unsigned __int16)a1;
    v15 = BYTE2(a1) & 1;
    LODWORD(a5a) = 4200962;
    v16 = (int)a1 < 0;
    EtwTraceTimedEvent(3954, 0xA0000010ui64, (INT64)&v14, 8i64, a5a, (INT64)v18);
  }
  return v11;
}

Referenced by:

HvlDmaAllocateDeviceDomain
HvlDmaAttachDeviceDomain
HvlDmaDeleteDeviceDomain
HvlDmaDetachDeviceDomain
HvlDmaMapDeviceLogicalRange
HvlDmaMapDeviceSparsePages
HvlDmaUnmapDeviceLogicalRange
HvlDmaUnmapDeviceSparsePages
HvlRestoreTime
HvlSetRootFaultReportingReady
HvlSvmAttachPasidSpace
HvlSvmClearPrqStalled
HvlSvmCreatePasidSpace
HvlSvmCreatePrQueue
HvlSvmDeletePrQueue
HvlSvmDetachPasidSpace
HvlSvmDisablePasid
HvlSvmEnablePasid
HvlSvmSetDeviceEnabled
HvlSvmSetPasidAddressSpace
HvlUnregisterDeviceId
HvlpAttachRootSvmDevice
HvlpCondenseMicrocode
HvlpDetachRootSvmDevice
HvlpDynamicUpdateMicrocode
HvlpFastAcknowledgePageRequest
HvlpFastFlushAddressSpaceTb
HvlpFastFlushAddressSpaceTbEx
HvlpFastFlushListTb
HvlpFastFlushListTbEx
HvlpFastFlushPasidAddressList
HvlpFastSendSyntheticClusterIpiEx
HvlpFlushPasidAddressSpace
HvlpGetVtlCallVa
HvlpProcessIommuPrq
HvlpReadPerfRegister
HvlpWritePerfRegister