HvFreeUnreconciledData
VOID __stdcall HvFreeUnreconciledData(_HHIVE *Hive){
void *SectionEndFileOffset;
__int64 i;
void *v4;
SectionEndFileOffset = (void *)Hive[1].ViewMap.SectionEndFileOffset;
if( SectionEndFileOffset )
{
ExFreePoolWithTag(SectionEndFileOffset, 0);
Hive[1].ViewMap.SectionEndFileOffset = 0i64;
Hive[1].LogDataPresent[0] = 0;
}
if( *(_QWORD *)&Hive[1]._bf_0 )
{
for( i = 0i64; (unsigned int)i < LODWORD(Hive[1].ViewMap.StorageEndFileOffset); i = (unsigned int)(i + 1) )
{
v4 = (void *)*((_QWORD *)Hive[1].ViewMap.SectionReference + 3 * i + 1);
if( v4 )
ExFreePoolWithTag(v4, 0);
}
ExFreePoolWithTag(Hive[1].ViewMap.SectionReference, 0);
ExFreePoolWithTag(*(PVOID *)&Hive[1]._bf_0, 0);
Hive[1].ViewMap.SectionReference = 0i64;
LODWORD(Hive[1].ViewMap.StorageEndFileOffset) = 0;
Hive[1].LastLogSwapTime.anonymous_0.LowPart = 0;
*(_QWORD *)&Hive[1]._bf_0 = 0i64;
}
}Referenced by:
CmpFlushHive
HvFoldBackUnreconciledData