RtlInsertUnicodePrefix - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTRTL_H

NTSYSAPI
BOOLEAN
NTAPI
RtlInsertUnicodePrefix(
    _In_ PUNICODE_PREFIX_TABLE PrefixTable,
    _In_ __drv_aliasesMem PCUNICODE_STRING Prefix,
    _Out_ PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry
    );

#endif

View code on GitHub
// ntifs.h

NTSYSAPI BOOLEAN RtlInsertUnicodePrefix(
  [in]  PUNICODE_PREFIX_TABLE            PrefixTable,
  [in]  __drv_aliasesMem PUNICODE_STRING Prefix,
  [out] PUNICODE_PREFIX_TABLE_ENTRY      PrefixTableEntry
);
View the official Windows Driver Kit DDI reference

NtDoc

This function is documented in Windows Driver Kit.

Windows Driver Kit DDI reference (nf-ntifs-rtlinsertunicodeprefix)

RtlInsertUnicodePrefix function

Description

The RtlInsertUnicodePrefix routine inserts a new element into a Unicode prefix table.

Parameters

PrefixTable [in]

Pointer to the prefix table. The table must have been initialized by calling RtlInitializeUnicodePrefix.

Prefix [in]

Pointer to the name string to be inserted with the element at PrefixTableEntry.

PrefixTableEntry [out]

Pointer to caller-allocated storage, which must be at least sizeof(UNICODE_PREFIX_TABLE_ENTRY), for the element to be inserted for the new prefix. RtlInsertUnicodePrefix initializes this element, which should be considered opaque by the caller.

Return value

RtlInsertUnicodePrefix returns TRUE if the new element was inserted in the prefix table, or it returns FALSE if a duplicate element already exists in the prefix table.

Remarks

Each prefix entry in the table is a pathname relative to the root directory of a file system volume. To be well-formed, the prefix must begin with a single backslash ().

After inserting the new element, RtlInsertUnicodePrefix rebalances the prefix table's splay tree.

File systems must call RtlInitializeUnicodePrefix to initialize the prefix table before using any other Rtl..UnicodePrefix routines on it. The initialized prefix table structure should be considered opaque.

Callers of the Rtl..UnicodePrefix routines are responsible for synchronizing access to the prefix table. A fast mutex is the most efficient synchronization mechanism to use for this purpose.

For information about other string-handling routines, see Run-Time Library (RTL) Routines.

See also

RtlFindUnicodePrefix

RtlInitializeUnicodePrefix

RtlNextUnicodePrefix

RtlRemoveUnicodePrefix

UNICODE_STRING