VfFreePoolNotification
VOID __stdcall VfFreePoolNotification(PVOID Address, UINT64 a2){
if( a2 )
{
if( (VfRuleClasses & 8) != 0 && VfPoolTraces )
ViPoolLogStackTrace(Address, a2);
if( (unsigned int)VfIsVerifierEnabled()
&& ((VfRuleClasses & 0xFFAFFFFF) != 0
|| (VfRuleClasses & 0x200000000i64) != 0
|| (VfRuleClasses & 0x400000000i64) != 0) )
{
VfDeadlockDeleteMemoryRange(Address, a2);
VfRemLockDeleteMemoryRange(Address, a2);
}
}
else if( (VfRuleClasses & 8) != 0 && ((MmVerifierData & 0x400000) == 0 || (*(_BYTE *)VfFlightOptions & 9) != 0) )
{
if( VfPoolTraces )
ViPoolLogStackTrace(Address, 0x10ui64);
}
}Referenced by:
ExFreeHeapPool
ExpFreePoolChecks
VerifierExFreePool
VerifierExFreePoolWithTag