IopAddBugcheckTriageCompletionQueue

NTSTATUS __stdcall IopAddBugcheckTriageCompletionQueue(UINT32 MaxDataSize){
  NTSTATUS v1; 
  _QWORD **v2; 
  int v3; 
  _QWORD *v4; 
  _QWORD *v5; 

  v1 = 0;
  v2 = *(_QWORD ***)&MaxDataSize;
  v3 = 0;
  if( !KiIsAddressRangeValid(*(INT64 *)&MaxDataSize, 16i64) )
    return -1073741823;
  IoAddTriageDumpDataBlock(v2, (_BYTE *)0x10);
  v4 = *v2;
  if( *v2 && v4 != v2 )
  {
    v5 = v2;
    while( v4 != v2 && v3 < 10 )
    {
      ++v3;
      if( !KiIsAddressRangeValid((INT64)v4, 24i64) )
        return -1073741823;
      IoAddTriageDumpDataBlock(v4, (_BYTE *)0x18);
      if( (_QWORD *)v4[1] != v5 )
        return -1073741823;
      v5 = v4;
      v1 = IopAddBugcheckTriageDeviceNode((_TRIAGE_DEVICE_NODE *)v4[2]);
      v4 = (_QWORD *)*v4;
      if( !v4 )
        return v1;
    }
  }
  return v1;
}

Referenced by:

IopAddBugcheckPnpTriageData
IopAddBugcheckPnpWatchdogTriageData