MiIsPageSecured
BOOL __stdcall MiIsPageSecured(INT64 a1){
_UNICODE_STRING *v1;
UINT8 v2;
wchar_t *v3;
int v4;
INT64 v5;
int v6;
unsigned __int64 v7;
_MMPTE *PteBase;
BOOL result;
result = 0;
if( (MiFlags & 0x8000) != 0 && ((*(_QWORD *)(a1 + 40) >> 60) & 7) == 3 )
{
LOBYTE(v4) = MI_PFN_IS_PROTO((_UNICODE_STRING *)a1, v1, v2, v3);
if( !v4 )
{
if( !*(_QWORD *)(v5 + 8) )
return 1;
LOBYTE(v6) = MiIsFreeSlabPage(v5);
if( v6 )
{
if( v7 == -2i64 )
return 1;
}
PteBase = MmGetPteBase();
if( v7 <= (unsigned __int64)&PteBase[0x7FFFFFFEFi64] && v7 >= (unsigned __int64)PteBase )
return 1;
}
}
return result;
}Referenced by:
MiAddNonSecuredPagesToDump
MiAddRangeToCrashDump
MiCopySinglePage
MmTryIdentifyPage