PVOID RtlInsertElementGenericTable( IN PRTL_GENERIC_TABLE Table, IN PVOID Buffer, IN CLONG BufferSize, OUT PBOOLEAN NewElement OPTIONAL ); Routine Description: The function InsertElementGenericTable will insert a new element in a table. It does this by allocating space for the new element (this includes splay links), inserting the element in the table, and then returning to the user a pointer to the new element (which is the first available space after the splay links). If an element with the same key already exists in the table the return value is a pointer to the old element. The optional output parameter NewElement is used to indicate if the element previously existed in the table. Note: the user supplied Buffer is only used for searching the table, upon insertion its contents are copied to the newly created element. This means that pointer to the input buffer will not point to the new element. Arguments: Table - Pointer to the table in which to (possibly) insert the key buffer. Buffer - Passed to the user comparasion routine. Its contents are up to the user but one could imagine that it contains some sort of key value. BufferSize - The amount of space to allocate when the (possible) insertion is made. Note that if we actually do not find the node and we do allocate space then we will add the size of the SPLAY_LINKS to this buffer size. The user should really take care not to depend on anything in the first sizeof(SPLAY_LINKS) bytes of the memory allocated via the memory allocation routine. NewElement - Optional Flag. If present then it will be set to TRUE if the buffer was not "found" in the generic table. Return Value: PVOID - Pointer to the user defined data.