IopLiveDumpMarkImportantDumpData
NTSTATUS __stdcall IopLiveDumpMarkImportantDumpData(_RTL_BITMAP_EX *Bitmap, UINT64 *MaxAdditionalPageCount){
__int64 v2;
__int64 v5;
NTSTATUS v6;
NTSTATUS v7;
__int64 *i;
NTSTATUS v9;
NTSTATUS v10;
NTSTATUS v11;
int v12;
NTSTATUS v13;
__int64 v15;
VOID *Va[2];
_KAFFINITY_ENUMERATION_CONTEXT v17;
_MM_KERNEL_DUMP_CONTEXT Context[2];
__int64 v19;
_RTL_BITMAP_EX *v20;
__int64 v21;
UINT64 *v22;
__int64 v23;
UINT64 ProcIndex;
v21 = 0i64;
v2 = 0i64;
v23 = 0i64;
if( (LODWORD(Bitmap[5].SizeOfBitMap) & 0x80u) != 0 )
{
LODWORD(v5) = IopLiveDumpGetMillisecondCounter(0);
v2 = v5;
}
v19 = 0i64;
LODWORD(v23) = v23 | 1;
LODWORD(ProcIndex) = 0;
v20 = Bitmap + 34;
v22 = MaxAdditionalPageCount;
v6 = 0;
*(_QWORD *)Context = IoSetDumpRange;
memset(&v17, 0, sizeof(v17));
*(_OWORD *)Va = 0i64;
v7 = ExAddPrivateDataToCrashDump(Context);
if( v7 < 0 )
{
if( v7 == -1073741789 )
return 0;
v6 = v7;
}
for( i = (__int64 *)PsActiveProcessHead; i != &PsActiveProcessHead; i = (__int64 *)*i )
{
v9 = MmAddRangeToCrashDump(Context, i - 137, 0xA40ui64);
if( v9 < 0 )
{
if( v9 == -1073741789 )
return 0;
v6 = v9;
}
}
v10 = MmAddPrivateDataToCrashDump(Context, 0x10ui64);
if( v10 < 0 )
{
if( v10 == -1073741789 )
return 0;
v6 = v10;
}
IopLiveDumpAddTriageDumpData((INT64 *)Bitmap, (INT64)Context);
v11 = MmAddPrivateDataToCrashDump(Context, 1ui64);
if( v11 < 0 )
{
if( v11 != -1073741789 )
{
v6 = v11;
goto LABEL_18;
}
return 0;
}
LABEL_18:
if( IptInterface )
{
v17.CurrentMask = KeActiveProcessors.Bitmap[0];
v17.Affinity = &KeActiveProcessors;
while( 1 )
{
KeEnumerateNextProcessor(&ProcIndex, &v17);
if( v12 )
break;
if( (*(int(__fastcall **)(_QWORD, VOID **))(IptInterface + 16))((unsigned int)ProcIndex, Va) >= 0 )
{
v13 = MmAddRangeToCrashDump(Context, Va[0], (UINT64)Va[1]);
if( v13 < 0 )
{
if( v13 == -1073741789 )
return 0;
v6 = v13;
}
}
}
}
if( (LODWORD(Bitmap[5].SizeOfBitMap) & 0x80u) != 0 )
{
LODWORD(v15) = IopLiveDumpGetMillisecondCounter(0);
IopLiveDumpTraceMarkImportantDumpDataDuration((_GUID *)Bitmap, v15 - v2);
}
return v6;
}Referenced by:
IopLiveDumpEndMirroringCallback