MiMarkHiberNotCachedPte
NTSTATUS __stdcall MiMarkHiberNotCachedPte(INT64 a1, INT64 a2, INT64 a3){
int v3;
UINT64 v4;
__int64 v5;
int v6;
unsigned __int64 PteShadow;
int v8;
VOID *v9;
int v10;
UINT64 v11;
__int64 v12;
UINT64 Tag;
UINT64 v15;
v3 = a3;
LODWORD(v4) = MI_READ_PTE_LOCK_FREE(a2);
v15 = v4;
v5 = v4;
if( (v4 & 1) != 0 && ((v6 = v4 & 0x10) == 0 && (v5 & 8) != 0 || v6) )
{
PteShadow = v5;
LOBYTE(v8) = MiPteInShadowRange((UINT64)&v15);
if( v8 )
PteShadow = MiReadPteShadow((__int64)&v15, v5);
v9 = (VOID *)((PteShadow >> 12) & 0xFFFFFFFFFi64);
MiIsPfn((UINT64)v9);
if( v10 )
{
if( (v5 & 0x80u) == 0i64 )
{
if( v3 )
return 0;
v11 = 1i64;
}
else
{
v11 = 512i64;
if( v3 <= 1 )
{
LABEL_16:
LODWORD(Tag) = 1668181325;
PoSetHiberRange(0i64, 0x14000ui64, v9, v11, Tag);
return 0;
}
v12 = (unsigned int)(v3 - 1);
do
{
v11 <<= 9;
--v12;
}
while( v12 );
}
if( v11 )
goto LABEL_16;
}
}
return 0;
}Referenced by:
No references.