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