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