VfRemLockDeleteMemoryRange
VOID __stdcall VfRemLockDeleteMemoryRange(VOID *Address, UINT64 NumberOfBytes){
_VF_AVL_TREE_NODE *v4;
_VF_AVL_LOCK_CONTEXT Context[4];
*(_OWORD *)Context = 0i64;
if( ViRemLockInitialized )
{
if( ViRemLockAvl.NodeCount )
{
if( !(unsigned int)VfPoolIsInternalFree() )
{
VfAvlInitializeLockContext(Context, Shared);
v4 = VfAvlLookupTreeNode(&ViRemLockAvl, Context, Address, NumberOfBytes);
VfAvlCleanupLockContext(Context);
if( v4 )
{
while( (unsigned int)ViRemLockDeleteFirstTreeNode(Address, NumberOfBytes) )
;
}
}
}
}
}Referenced by:
VfDriverUnloadImage
VfFreeMemoryNotification
VfFreePoolNotification