IopAddBugcheckTriageWorkQueue
NTSTATUS __stdcall IopAddBugcheckTriageWorkQueue(_TRIAGE_EX_WORK_QUEUE *TriageQueue){
NTSTATUS v1;
int v3;
_QWORD **v4;
_QWORD *v5;
_QWORD *v6;
v1 = 0;
v3 = 0;
if( !KiIsAddressRangeValid((INT64)TriageQueue, 688i64) )
return -1073741823;
IoAddTriageDumpDataBlock(TriageQueue, (_BYTE *)0x2B0);
v4 = (_QWORD **)((char *)TriageQueue + 672);
v5 = *v4;
if( *v4 )
{
v6 = v4;
while( v5 != v4 && v3 < 10 )
{
++v3;
if( !KiIsAddressRangeValid((INT64)v5, 16i64) || (_QWORD *)v5[1] != v6 )
return -1073741823;
IopAddBugcheckTriageThread((_ETHREAD *)(v5 - 65));
v6 = v5;
v5 = (_QWORD *)*v5;
if( !v5 )
return v1;
}
}
return v1;
}Referenced by:
IopAddBugcheckPnpTriageData
IopAddBugcheckPnpWatchdogTriageData
IopAddBugcheckPowerTriageData