HvpResetPageProtection
VOID __stdcall HvpResetPageProtection(_HHIVE *Hive){
unsigned int SizeOfBitMap;
UINT32 v3;
unsigned int DirtyCount;
UINT32 NextForwardRunSet;
UINT32 v6;
unsigned int v7;
unsigned int StartingRunIndex;
StartingRunIndex = 0;
SizeOfBitMap = Hive->DirtyVector.SizeOfBitMap;
v3 = 0;
DirtyCount = Hive->DirtyCount;
while( v3 < SizeOfBitMap )
{
NextForwardRunSet = RtlFindNextForwardRunSet(&Hive->DirtyVector, v3, &StartingRunIndex);
v6 = NextForwardRunSet;
if( !NextForwardRunSet )
break;
v7 = StartingRunIndex;
HvpSetRangeProtection((ULONG_PTR)Hive, StartingRunIndex << 9, NextForwardRunSet << 9, 2ui64);
v3 = v6 + v7;
DirtyCount -= v6;
if( !DirtyCount )
break;
}
}Referenced by:
HvResetDirtyData