static
SEARCH_RESULT
FindNodeOrParent(
  IN  PRTL_GENERIC_TABLE Table,
  IN  PVOID Buffer,
  OUT PRTL_SPLAY_LINKS *NodeOrParent
  );

Routine Description:

    This routine is used by all of the routines of the generic
    table package to locate the a node in the tree.  It will
    find and return (via the NodeOrParent parameter) the node
    with the given key, or if that node is not in the tree it
    will return (via the NodeOrParent parameter) a pointer to
    the parent.

Arguments:

    Table - The generic table to search for the key.

    Buffer - Pointer to a buffer holding the key.  The table
             package doesn't examine the key itself.  It leaves
             this up to the user supplied compare routine.

    NodeOrParent - Will be set to point to the node containing the
                   the key or what should be the parent of the node
                   if it were in the tree.  Note that this will *NOT*
                   be set if the search result is EmptyTree.

Return Value:

    SEARCH_RESULT - EmptyTree: The tree was empty.  NodeOrParent
                               is *not* altered.

                    FoundNode: A node with the key is in the tree.
                               NodeOrParent points to that node.

                    InsertAsLeft: Node with key was not found.
                                  NodeOrParent points to what would be
                                  parent.  The node would be the left
                                  child.

                    InsertAsRight: Node with key was not found.
                                   NodeOrParent points to what would be
                                   parent.  The node would be the right
                                   child.