MiPfCompleteInPageSupport
NTSTATUS __stdcall MiPfCompleteInPageSupport(ULONG_PTR InPageSupport, _MMSUPPORT_INSTANCE *Vm){
_MMSUPPORT_INSTANCE *v3;
VOID *NextPageColor;
VOID *v5;
signed int v7;
INT64 HardFaultInfo;
_MI_STORE_INPAGE_COMPLETE_FLAGS *HardFaultInfoa;
PF_HARD_FAULT_INFO **v10;
_BYTE v11[184];
v3 = *(_MMSUPPORT_INSTANCE **)&InPageSupport;
memset(&v11[16], 0i64, 0x88u);
*(_QWORD *)v11 = 0i64;
NextPageColor = (VOID *)v3[1].NextPageColor;
if( Vm == (_MMSUPPORT_INSTANCE *)1 )
{
v7 = (((unsigned int)NextPageColor >> 1) & 3) - 1;
if( (((unsigned int)NextPageColor >> 1) & 3) != 1 )
{
switch( ((unsigned int)NextPageColor >> 1) & 3 )
{
case 2u:
v7 = 2;
break;
case 3u:
v7 = 1;
break;
case 5u:
v7 = 4;
break;
default:
goto LABEL_5;
}
}
Vm = MiGetAnyMultiplexedVm((_MI_WORKING_SET_TYPE)v7, NextPageColor);
LABEL_5:
LODWORD(NextPageColor) = (unsigned int)NextPageColor & 0xFFFFFFF9;
}
v3[1].NextPageColor = (unsigned int)NextPageColor | 0x1000000;
MiInitializePageFaultPacket(0i64, 0i64, 0, 0i64, (INT64)&v11[16]);
*(_QWORD *)&v11[72] = Vm;
MiWaitForInPageComplete((_MMINPAGE_SUPPORT *)&v11[16], v3, (_MMSUPPORT_INSTANCE *)v11, v5, HardFaultInfo, v10);
return MiFinishHardFault((_MMINPAGE_SUPPORT *)&v11[16], 0i64, v3, 0i64, HardFaultInfoa);
}Referenced by:
MiPfCompleteCoalescedIo
MiPfCompletePrefetchIos