MiValidateMdlTracker
NTSTATUS __stdcall MiValidateMdlTracker(PVOID BugCheckParameter3){
int v1;
ULONG_PTR v2;
int v3;
__int64 v4;
unsigned __int64 v6;
__int64 v7;
__int64 v8;
__int64 v10;
v2 = *((_QWORD *)BugCheckParameter3 + 3);
v3 = v1;
v4 = *((_QWORD *)BugCheckParameter3 + 5);
v6 = (((*(_DWORD *)(v2 + 32) + *(_DWORD *)(v2 + 44)) & 0xFFF) + (unsigned __int64)*(unsigned int *)(v2 + 40) + 4095) >> 12;
if( v4 != v6 )
KeBugCheckEx(0x76u, 5ui64, *((_QWORD *)BugCheckParameter3 + 3), (ULONG_PTR)BugCheckParameter3, v6 | (v4 << 32));
v7 = *((_QWORD *)BugCheckParameter3 + 8);
v8 = *(_QWORD *)(v2 + 48);
if( v7 != v8 )
KeBugCheckEx(0x76u, 6ui64, v2, (ULONG_PTR)BugCheckParameter3, v8 | (v7 << 32));
if( v3 )
{
v10 = 0i64;
MetroHash64::Hash((const unsigned __int8 *)(v2 + 48), 8 * v6, (unsigned __int8 *const)&v10);
LODWORD(v8) = v10;
if( *((_DWORD *)BugCheckParameter3 + 15) != (_DWORD)v10 )
KeBugCheckEx(0x76u, 7ui64, v2, (ULONG_PTR)BugCheckParameter3, (unsigned int)v10 | (unsigned __int64)(v7 << 32));
}
return v8;
}Referenced by:
MiFreeMdlTracker
MmUpdateMdlTrackerForMdlSwitch