IopAddBugcheckPnpWatchdogTriageData

NTSTATUS __stdcall IopAddBugcheckPnpWatchdogTriageData(UINT32 MaxDataSize){
  _ETHREAD *v1; 
  INT64 v2; 
  NTSTATUS v3; 
  _ETHREAD *v4; 
  _ETHREAD *v5; 
  _ETHREAD *v6; 
  _DEVICE_OBJECT *v7; 
  _TRIAGE_DEVICE_NODE *v8; 

  v2 = *(_QWORD *)&MaxDataSize;
  v3 = 0;
  IopAddBugcheckTriageThread(v1);
  if( !KiIsAddressRangeValid(v2, 80i64) )
    return -1073741823;
  IoAddTriageDumpDataBlock((VOID *)v2, (_BYTE *)0x50);
  IopAddBugcheckTriageCompletionQueue(*(_QWORD *)(v2 + 40));
  IopAddBugcheckTriageWorkQueue(*(_TRIAGE_EX_WORK_QUEUE **)(v2 + 48));
  v4 = *(_ETHREAD **)(v2 + 16);
  if( v4 )
    IopAddBugcheckTriageThread(v4);
  v5 = *(_ETHREAD **)(v2 + 24);
  if( v5 )
    IopAddBugcheckTriageThread(v5);
  v6 = *(_ETHREAD **)(v2 + 32);
  if( v6 )
    IopAddBugcheckTriageThread(v6);
  v7 = *(_DEVICE_OBJECT **)(v2 + 64);
  if( v7 )
    IopAddBugcheckTriageDevice(v7);
  v8 = *(_TRIAGE_DEVICE_NODE **)(v2 + 56);
  if( v8 )
    IopAddBugcheckTriageDeviceNode(v8);
  return v3;
}

Referenced by:

IopAddBugcheckTriageDataFromParameters