VfFreePoolNotification
VOID __stdcall VfFreePoolNotification(VOID *Address, UINT64 NumberOfBytes){
if( NumberOfBytes )
{
if( (*(&stru_140CF2E80 + 7304) & 8) != 0 && VfPoolTraces )
ViPoolLogStackTrace(Address, NumberOfBytes);
if( VfIsVerifierEnabled()
&& ((*(&stru_140CF2E80 + 1826) & 0xFFAFFFFF) != 0
|| (*(&stru_140CF2E80 + 7308) & 2) != 0
|| (*(&stru_140CF2E80 + 7308) & 4) != 0) )
{
VfDeadlockDeleteMemoryRange(Address, NumberOfBytes);
VfRemLockDeleteMemoryRange(Address, NumberOfBytes);
}
}
else if( (*(&stru_140CF2E80 + 7304) & 8) != 0 && ((MmVerifierData & 0x400000) == 0 || (VfFlightOptions & 9) != 0) )
{
if( VfPoolTraces )
ViPoolLogStackTrace(Address, 0x10ui64);
}
}Referenced by:
ExFreeHeapPool
ExpFreePoolChecks
VerifierExFreePool
VerifierExFreePoolWithTag