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