KiInvokeBugCheckEntryCallbacks
VOID __stdcall KiInvokeBugCheckEntryCallbacks(){
__int64 v0;
KBUGCHECK_CALLBACK_REASON v1;
unsigned int v2;
unsigned int v3;
__int64 v4;
KBUGCHECK_CALLBACK_REASON v5;
PVOID *v6;
LIST_ENTRY *PreviousValidEntry;
v3 = v2;
v4 = v0;
v5 = v1;
v6 = (PVOID *)KeBugCheckReasonCallbackListHead;
if( KeBugCheckReasonCallbackListHead && qword_140C31EB8 )
{
PreviousValidEntry = (LIST_ENTRY *)&KeBugCheckReasonCallbackListHead;
while( v6 != &KeBugCheckReasonCallbackListHead )
{
if( KeValidateBugCheckCallbackRecord((KBUGCHECK_REASON_CALLBACK_RECORD *)v6, v5, &PreviousValidEntry) )
{
((void(__fastcall *)(_QWORD, PVOID *, __int64, _QWORD))v6[2])((unsigned int)v5, v6, v4, v3);
*((_BYTE *)v6 + 44) = 3;
}
else if( !PreviousValidEntry )
{
return;
}
v6 = (PVOID *)*v6;
}
}
}Referenced by:
KeBugCheck2
KiAttemptBugcheckRecovery