MiPfCompletePrefetchIos

VOID __stdcall MiPfCompletePrefetchIos(
        _LIST_ENTRY *IssuedSupportHead,
        _LIST_ENTRY *BuiltSupportHead,
        _MMSUPPORT_INSTANCE *Vm,
        CHAR a4){
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v7; 

  if( BuiltSupportHead )
    MiPfCoalesceAndIssueIOs(BuiltSupportHead, IssuedSupportHead, 0i64);
  while( 1 )
  {
    Flink = IssuedSupportHead->Flink;
    if( IssuedSupportHead->Flink == IssuedSupportHead )
      break;
    if( Flink->Blink != IssuedSupportHead || (v7 = Flink->Flink, Flink->Flink->Blink != Flink) )
      __fastfail(3u);
    IssuedSupportHead->Flink = v7;
    v7->Blink = IssuedSupportHead;
    if( ((__int64)Flink[12].Flink & 0x800000) != 0 )
      MiPfCompleteCoalescedIo(Flink, Vm);
    else
      MiPfCompleteInPageSupport((ULONG_PTR)Flink, Vm);
  }
}

Referenced by:

MiPrefetchControlArea
MiPrefetchVirtualMemory
MmPrefetchPagesEx
MmWaitForCacheManagerPrefetch