HvFreeDirtyData
VOID __stdcall HvFreeDirtyData(_HHIVE *Hive){
void *v2;
__int64 v3;
void *v4;
v2 = *(void **)&Hive[1].HvUsedCellsUse;
if( v2 )
{
ExFreePoolWithTag(v2, 0);
Hive[1].HvBinHeadersUse = 0;
v3 = 0i64;
for( *(_QWORD *)&Hive[1].HvUsedCellsUse = 0i64;
(unsigned int)v3 < Hive[1].CurrentLogOffset;
v3 = (unsigned int)(v3 + 1) )
{
v4 = *(void **)(*(_QWORD *)&Hive[1].CurrentLogSequence + 24 * v3 + 8);
if( v4 )
{
ExFreePoolWithTag(v4, 0);
*(_QWORD *)(*(_QWORD *)&Hive[1].CurrentLogSequence + 24 * v3 + 8) = 0i64;
}
}
ExFreePoolWithTag(*(PVOID *)&Hive[1].CurrentLogSequence, 0);
*(_QWORD *)&Hive[1].CurrentLogSequence = 0i64;
Hive[1].CurrentLogOffset = 0;
Hive[1].MinimumLogSequence = 0;
}
}Referenced by:
CmpFlushHive
HvFoldBackDirtyData