HvlpMarkHvlPagesForHibernation
VOID __stdcall HvlpMarkHvlPagesForHibernation(){
UINT64 v0;
VOID(__fastcall *v1)(CHAR, _BYTE *);
unsigned int v2;
unsigned int ActiveProcessorCount;
__int64 v4;
UINT64 Tag;
UINT64 Tagb;
UINT64 Taga;
if( (HvlpFlags & 2) != 0 )
{
v0 = 0i64;
v1 = HvlGetReferenceTimeUsingTscPage;
}
else
{
LODWORD(Tag) = 1684829768;
PoSetHiberRange(0i64, 0x10000ui64, HvlpReferenceTscPage, 0x1000ui64, Tag);
v1 = (VOID(__fastcall *)(CHAR, _BYTE *))HvlpHypercallCodeVa;
v0 = 4096i64;
}
LODWORD(Tag) = 1668052552;
PoSetHiberRange(0i64, 0x10000ui64, v1, v0, Tag);
LODWORD(Tagb) = 1684829768;
PoSetHiberRange(0i64, 0x10000ui64, &HvlpFlags, 0i64, Tagb);
v2 = 0;
ActiveProcessorCount = KeQueryActiveProcessorCountEx(0xFFFFu);
if( ActiveProcessorCount )
{
do
{
KeGetPrcb(v2);
LODWORD(Taga) = 1684829768;
PoSetHiberRange(0i64, 0x10000ui64, *(VOID **)(v4 + 33664), 0x6000ui64, Taga);
++v2;
}
while( v2 < ActiveProcessorCount );
}
}Referenced by:
HvlMarkHiberPhase