MmPrefetchVirtualAddresses

NTSTATUS __stdcall MmPrefetchVirtualAddresses(_PREFETCH_VIRTUAL_ADDRESS_LIST *ParameterBlock){
  unsigned int v1; 
  _IO_PRIORITY_HINT IoPriorityThread; 
  unsigned int v3; 
  __int64 v4; 
  INT64 v5; 

  if( *ParameterBlock != 1 )
    return -1073741585;
  v1 = ParameterBlock[1];
  if( v1 >= 8 || (v1 & 6) > 4 )
    return -1073741585;
  if( (v1 & 6) != 0 && (v1 & 6) != 2 )
    MiGetEffectivePagePriorityThread((_ETHREAD *)KeGetCurrentThread());
  IoPriorityThread = PsGetIoPriorityThread((_ETHREAD *)KeGetCurrentThread());
  v5 = v3;
  LODWORD(v5) = v3 | 0x400;
  if( IoPriorityThread > IoPriorityLow )
    v5 = v3;
  return MmPrefetchVirtualMemory(*(CHAR **)(v4 + 8), *(_QWORD *)(v4 + 16), *(_QWORD *)(v4 + 24), v5);
}

Referenced by:

VmpPrefetchForVirtualFault