MiPfIssueCoalesceCandidates

NTSTATUS __stdcall MiPfIssueCoalesceCandidates(
        _LIST_ENTRY *CandidateListHead,
        UINT64 CoalescedSize,
        _LIST_ENTRY *IssuedInPageSupportsHead){
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v6; 
  _LIST_ENTRY *Blink; 
  NTSTATUS result; 
  _LIST_ENTRY *v9; 
  _LIST_ENTRY *v10; 
  _LIST_ENTRY *v11; 

  Flink = CandidateListHead->Flink;
  v6 = CandidateListHead->Flink->Flink;
  if( v6 == CandidateListHead )
  {
    if( Flink->Blink != CandidateListHead || v6->Blink != Flink )
      goto LABEL_14;
    CandidateListHead->Flink = v6;
    v6->Blink = CandidateListHead;
    MiIssueHardFaultIo((_MMINPAGE_SUPPORT *)Flink, 0i64, 0i64);
LABEL_5:
    Blink = IssuedInPageSupportsHead->Blink;
    if( Blink->Flink == IssuedInPageSupportsHead )
    {
      Flink->Flink = IssuedInPageSupportsHead;
      Flink->Blink = Blink;
      Blink->Flink = Flink;
      result = 0;
      IssuedInPageSupportsHead->Blink = Flink;
      return result;
    }
LABEL_14:
    __fastfail(3u);
  }
  Flink = (_LIST_ENTRY *)MiPfIssueCoalescedSupport(CandidateListHead, CoalescedSize);
  if( Flink )
    goto LABEL_5;
  while( 1 )
  {
    v9 = CandidateListHead->Flink;
    if( CandidateListHead->Flink == CandidateListHead )
      return -1073741670;
    if( v9->Blink != CandidateListHead )
      goto LABEL_14;
    v10 = v9->Flink;
    if( v9->Flink->Blink != v9 )
      goto LABEL_14;
    CandidateListHead->Flink = v10;
    v10->Blink = CandidateListHead;
    MiIssueHardFaultIo((_MMINPAGE_SUPPORT *)v9, 0i64, 0i64);
    v11 = IssuedInPageSupportsHead->Blink;
    if( v11->Flink != IssuedInPageSupportsHead )
      goto LABEL_14;
    v9->Flink = IssuedInPageSupportsHead;
    v9->Blink = v11;
    v11->Flink = v9;
    IssuedInPageSupportsHead->Blink = v9;
  }
}

Referenced by:

MiPfCoalesceAndIssueIOs