DbgkpWerInvokeCallbacks

INT64 __fastcall DbgkpWerInvokeCallbacks(INT64 a1){
  const void *v2; 
  int v4; 
  unsigned int v5; 
  __int64 v6; 
  DbgPrintEx(5u, 3u, "DBGK: DbgkpWerInvokeCallbacks entered, context 0x%p\n", (const void *)a1);
  v2 = *(const void **)(a1 + 80);
  if( !v2 )
    return 0i64;
  DbgPrintEx(5u, 3u, "DBGK: Invoking callback at address 0x%p\n", v2);
  v4 = (*(__int64(__fastcall **)(INT64, INT64(__stdcall *)(PVOID, GUID *, PVOID, UINT64), _QWORD, _QWORD, _QWORD, _QWORD, _QWORD, _QWORD))(a1 + 80))(
         a1,
         DbgkWerAddSecondaryData,
         *(unsigned int *)(a1 + 32),
         *(_QWORD *)(a1 + 40),
         *(_QWORD *)(a1 + 48),
         *(_QWORD *)(a1 + 56),
         *(_QWORD *)(a1 + 64),
         *(_QWORD *)(a1 + 72));
  v5 = v4;
  if( v4 < 0 )
  {
    LODWORD(v6) = v4;
    DbgPrintEx(5u, 0, "DBGK: callback at address 0x%p returned status 0x%X\n", *(const void **)(a1 + 80), v6);
  }
  return v5;
}

Referenced by:

DbgkpWerCaptureLiveFullDump
DbgkpWerCaptureLiveTriageDump