MiPfCompletePrefetchIos

NTSTATUS __stdcall MiPfCompletePrefetchIos(
        _LIST_ENTRY *IssuedSupportHead,
        _LIST_ENTRY *BuiltSupportHead,
        _MMSUPPORT_INSTANCE *Vm){
  NTSTATUS v5; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v7; 
  int v8; 
  if( BuiltSupportHead )
    MiPfCoalesceAndIssueIOs((union _MM_STORE_KEY *)BuiltSupportHead, (union _SM_PAGE_KEY *)IssuedSupportHead);
  v5 = 0;
  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 )
      v8 = MiPfCompleteCoalescedIo((CHAR *)Flink, (CHAR *)Vm);
    else
      v8 = MiPfCompleteInPageSupport((UINT64)Flink, (CHAR *)Vm);
    if( v8 < 0 && v8 != -1073740748 )
      v5 = v8;
  }
  return v5;
}

Referenced by:

MiPrefetchControlArea
MiPrefetchVirtualMemory
MmPrefetchPagesEx
MmWaitForCacheManagerPrefetch