RtlLookupElementGenericTableFullAvl
VOID *__stdcall RtlLookupElementGenericTableFullAvl(
_RTL_AVL_TABLE *Table,
VOID *Buffer,
VOID **NodeOrParent,
_TABLE_SEARCH_RESULT *SearchResult){
_RTL_BALANCED_LINKS *i;
_RTL_GENERIC_COMPARE_RESULTS v9;
if( Table->NumberGenericTableElements )
{
for( i = Table->BalancedRoot.RightChild; ; i = i->RightChild )
{
while( 1 )
{
v9 = Table->CompareRoutine(Table, Buffer, &i[1]);
if( v9 )
break;
if( !i->LeftChild )
{
*NodeOrParent = i;
*SearchResult = TableInsertAsLeft;
return 0i64;
}
i = i->LeftChild;
}
if( v9 != GenericGreaterThan )
break;
if( !i->RightChild )
{
*NodeOrParent = i;
*SearchResult = TableInsertAsRight;
return 0i64;
}
}
*NodeOrParent = i;
*SearchResult = TableFoundNode;
return(char *)*NodeOrParent + 32;
}
else
{
*SearchResult = TableEmptyTree;
return 0i64;
}
}Referenced by:
PiDmAddCacheReferenceForObject
PiPnpRtlObjectEventCreate
VfAvlLookupTreeNode