HvMarkBaseBlockDirty
VOID __stdcall HvMarkBaseBlockDirty(_HHIVE *Hive){
unsigned int HiveFlags;
UINT64 EligibleTime;
if( !Hive->BaseBlockDirty && !Hive->DirtyCount )
{
*(_QWORD *)&Hive[2].Storage[1].FreeDisplay[7].RealVectorSize = KiQueryUnbiasedInterruptTime(1u);
CmpIssueNewDirtyCallback();
}
HiveFlags = Hive->HiveFlags;
Hive->BaseBlockDirty = 1;
if( (HiveFlags & 2) == 0 )
{
EligibleTime = *(_QWORD *)&Hive[2].Storage[1].FreeDisplay[7].RealVectorSize
+ 10000000i64 * (unsigned int)CmpLazyFlushIntervalInSeconds;
CmpArmLazyWriter(CmpLazyFlusher, &EligibleTime, 0i64);
}
}Referenced by:
CmCompressKey
CmFreezeRegistry
CmShutdownSystem
CmThawRegistry
CmpCompleteUnloadKey
CmpCreateHive
CmpCreateHiveRootCell
CmpInitCmRM
CmpReorganizeHive
HvHiveStartFileBacked