IopConstructInMemoryDumpHeader
VOID __fastcall IopConstructInMemoryDumpHeader(INT64 a1, _BYTE *a2){
_DWORD *v2;
__int64 v3;
if( _InterlockedExchange(InMemData, 1) != 1 )
{
dword_140C50948 = 0;
if( dword_140C50914
&& (v2 = *(_DWORD **)&InMemData[2 * (qword_140C50930 & 1) + 2]) != 0i64
&& (v3 = *(_QWORD *)&InMemData[2 * (((_BYTE)qword_140C50930 - 1) & 1) + 2]) != 0 )
{
IoFillDumpHeader(v3 + 24, (PWSTR)1);
*(_QWORD *)(v3 + 4040) = qword_140C50938;
*(_QWORD *)(v3 + 40) = *((_QWORD *)PsInitialSystemProcess + 5) & 0xFFFFFFFFFFFFF000ui64;
*v2 = _InterlockedExchange((volatile __int32 *)v3, 1397967163);
LODWORD(qword_140C50930) = qword_140C50930 + 1;
}
else
{
dword_140C50948 = -1073741823;
}
_InterlockedExchange(InMemData, 0);
}
}Referenced by:
IoUpdateDumpPhysicalRanges
IopInitializeOfflineCrashDump