Runtime Library Routines

This section contains references, in alphabetical order, for the subset of system-supplied RtlXxx support routines that can be used by kernel-mode file systems and file system filter drivers but not by device drivers.

In addition to the routines documented here, file systems and file system filter drivers can also call any of the RtlXxx routines described in the Kernel-Mode Driver Architecture Reference section that are declared in Ntifs.h.

In this section

TopicDescription

RtlAbsoluteToSelfRelativeSD

The RtlAbsoluteToSelfRelativeSD routine creates a new security descriptor in self-relative format by using a security descriptor in absolute format as a template.

RtlAddAccessAllowedAce

The RtlAddAccessAllowedAce routine adds an access-allowed access control entry (ACE) to an access control list (ACL). The access is granted to the specified security identifier (SID).

RtlAddAccessAllowedAceEx

The RtlAddAccessAllowedAceEx routine adds an access-allowed access control entry (ACE) with inheritance ACE flags to an access control list (ACL). The access is granted to the specified security identifier (SID).

RtlAddAce

The RtlAddAce routine adds one or more access control entries (ACEs) to a specified access control list (ACL).

RtlAllocateAndInitializeSid

Reserved for system use.

RtlAllocateHeap

The RtlAllocateHeap routine allocates a block of memory from a heap.

RtlAppendStringToString

The RtlAppendStringToString routine concatenates two counted strings. It copies bytes from the source up to the length of the destination buffer.

RtlCaptureContext

The RtlCaptureContext function retrieves a context record in the context of the caller.

RtlCaptureStackBackTrace

The RtlCaptureStackBackTrace routine captures a stack back trace by walking up the stack and recording the information for each frame.

RtlCompareMemoryUlong

The RtlCompareMemoryUlong routine returns how many bytes in a block of memory match a specified pattern.

RtlCompressBuffer

The RtlCompressBuffer function compresses a buffer and can be used by a file system driver to facilitate the implementation of file compression.

RtlCompressChunks

Reserved for system use.

RtlConvertSidToUnicodeString

The RtlConvertSidToUnicodeString routine generates a printable Unicode string representation of a security identifier (SID).

RtlCopyLuid

The RtlCopyLuid routine copies a locally unique identifier (LUID) to a buffer.

RtlCopySid

The RtlCopySid routine copies the value of a security identifier (SID) to a buffer.

RtlCreateAcl

The RtlCreateAcl routine creates and initializes an access control list (ACL).

RtlCreateHeap

The RtlCreateHeap routine creates a heap object that can be used by the calling process. This routine reserves space in the virtual address space of the process and allocates physical storage for a specified initial portion of this block.

RtlCreateSecurityDescriptorRelative

The RtlCreateSecurityDescriptorRelative routine initializes a new security descriptor in self-relative format. On return, the security descriptor is initialized with no system ACL (SACL), no discretionary ACL (DACL), no owner, no primary group, and all control flags set to zero.

RtlCreateSystemVolumeInformationFolder

The RtlCreateSystemVolumeInformationFolder routine verifies the existence of the "System Volume Information" folder on a file system volume. If the folder is not present, then the folder is created.

RtlCreateUnicodeString

The RtlCreateUnicodeString routine creates a new counted Unicode string.

RtlCustomCPToUnicodeN

Reserved for system use.

RtlDecompressBuffer

The RtlDecompressBuffer function decompresses an entire compressed buffer.

RtlDecompressBufferEx

The RtlDecompressBufferEx function decompresses an entire compressed buffer.

RtlDecompressChunks

Reserved for system use.

RtlDecompressFragment

The RtlDecompressFragment function is used to decompress part of a compressed buffer (that is, a buffer "fragment").

RtlDelete

The RtlDelete routine deletes the specified node from the splay link tree.

RtlDeleteAce

The RtlDeleteAce routine deletes an access control entry (ACE) from a specified access control list (ACL).

RtlDeleteNoSplay

The RtlDeleteNoSplay routine deletes the specified node from the splay link tree.

RtlDeleteElementGenericTable

The RtlDeleteElementGenericTable routine deletes an element from a generic table.

RtlDeleteElementGenericTableAvl

The RtlDeleteElementGenericTableAvl routine deletes an element from a generic table.

RtlDescribeChunk

Reserved for system use.

RtlDestroyHeap

The RtlDestroyHeap routine destroys the specified heap object. RtlDestroyHeap decommits and releases all the pages of a private heap object, and it invalidates the handle to the heap.

RtlDowncaseUnicodeString

The RtlDowncaseUnicodeString routine converts the specified Unicode source string to lowercase. The translation conforms to the current system locale information.

RtlEnumerateGenericTable

The RtlEnumerateGenericTable routine is used to enumerate the elements in a generic table.

RtlEnumerateGenericTableAvl

The RtlEnumerateGenericTableAvl routine is used to enumerate the elements in a generic table.

RtlEnumerateGenericTableLikeADirectory

The RtlEnumerateGenericTableLikeADirectory routine returns the elements of a generic table, one-by-one, in collation order.

RtlEnumerateGenericTableWithoutSplaying

The RtlEnumerateGenericTableWithoutSplaying routine is used to enumerate the elements in a generic table.

RtlEnumerateGenericTableWithoutSplayingAvl

The RtlEnumerateGenericTableWithoutSplayingAvl routine is used to enumerate the elements in a generic table.

RtlEqualPrefixSid

The RtlEqualPrefixSid routine determines whether two security-identifier (SID) prefixes are equal. An SID prefix is the entire SID except for the last subauthority value.

RtlEqualSid

The RtlEqualSid routine determines whether two security identifier (SID) values are equal. Two SIDs must match exactly to be considered equal.

RtlFillMemoryUlong

The RtlFillMemoryUlong routine fills the specified range of memory with one or more repetitions of a ULONG value.

RtlFillMemoryUlonglong

The RtlFillMemoryUlonglong routine fills a given range of memory with one or more repetitions of a given ULONGLONG value.

RtlFindUnicodePrefix

The RtlFindUnicodePrefix routine searches for the best match for a given Unicode file name in a prefix table.

RtlFreeHeap

The RtlFreeHeap routine frees a memory block that was allocated from a heap by RtlAllocateHeap.

RtlFreeOemString

The RtlFreeOemString routine releases storage that was allocated by any of the Rtl..ToOemString routines.

RtlFreeSid

Reserved for system use.

RtlGenerate8dot3Name

The RtlGenerate8dot3Name routine generates a short (8.3) name for the specified long file name.

RtlGetAce

The RtlGetAce routine obtains a pointer to an access control entry (ACE) in an access control list (ACL).

RtlGetCompressionWorkSpaceSize

The RtlGetCompressionWorkSpaceSize function is used to determine the correct size of the WorkSpace buffer for the RtlCompressBuffer and RtlDecompressFragment functions.

RtlGetDaclSecurityDescriptor

The RtlGetDaclSecurityDescriptor routine returns a pointer to the discretionary ACL (DACL) for a security descriptor.

RtlGetElementGenericTable

The RtlGetElementGenericTable routine returns a pointer to the caller-supplied data for a particular generic table element.

RtlGetElementGenericTableAvl

The RtlGetElementGenericTableAvl routine returns a pointer to the caller-supplied data for a particular generic Adelson-Velsky/Landis (AVL) table element.

RtlGetGroupSecurityDescriptor

The RtlGetGroupSecurityDescriptor routine returns the primary group information for a given security descriptor.

RtlGetOwnerSecurityDescriptor

The RtlGetOwnerSecurityDescriptor routine returns the owner information for a given security descriptor.

RtlGetSaclSecurityDescriptor

The RtlGetSaclSecurityDescriptor routine returns a pointer to the system ACL (SACL) for a security descriptor.

RtlIdentifierAuthoritySid

Reserved for system use.

RtlInitCodePageTable

Reserved for system use.

RtlInitializeGenericTable

The RtlInitializeGenericTable routine initializes a generic table.

RtlInitializeGenericTableAvl

The RtlInitializeGenericTableAvl routine initializes a generic table using Adelson-Velsky/Landis (AVL) trees.

RtlInitializeSid

The RtlInitializeSid routine initializes a security identifier (SID) structure.

RtlInitializeSplayLinks

The RtlInitializeSplayLinks routine initializes a splay link node.

RtlInitializeUnicodePrefix

The RtlInitializeUnicodePrefix routine initializes a prefix table.

RtlInsertAsLeftChild

The RtlInsertAsLeftChild routine inserts a splay link node into the tree as the left child of the specified node.

RtlInsertAsRightChild

The RtlInsertAsRightChild routine inserts a given splay link into the tree as the right child of a given node in that tree.

RtlInsertElementGenericTable

The RtlInsertElementGenericTable routine adds a new element to a generic table.

RtlInsertElementGenericTableAvl

The RtlInsertElementGenericTableAvl routine adds a new entry to a generic table.

RtlInsertElementGenericTableFullAvl

The RtlInsertElementGenericTableFullAvl routine adds a new entry to a generic table.

RtlInsertUnicodePrefix

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

RtlIsGenericTableEmpty

The RtlIsGenericTableEmpty routine determines if a generic table is empty.

RtlIsGenericTableEmptyAvl

The RtlIsGenericTableEmptyAvl routine determines if a generic table is empty.

RtlIsLeftChild

The RtlIsLeftChild routine determines whether a given splay link is the left child of a node in a splay link tree.

RtlIsNameLegalDOS8Dot3

The RtlIsNameLegalDOS8Dot3 routine determines whether a given name represents a valid short (8.3) file name.

RtlIsRightChild

The RtlIsRightChild routine determines whether a given splay link is the right child of a node in a splay link tree.

RtlIsRoot

The RtlIsRoot routine determines whether the specified node is the root node of a splay link tree.

RtlIsValidOemCharacter

The RtlIsValidOemCharacter routine determines if the specified Unicode character can be mapped to a valid OEM character.

RtlLeftChild

The RtlLeftChild routine returns a pointer to the left child of the specified splay link node.

RtlLengthRequiredSid

The RtlLengthRequiredSid routine returns the length, in bytes, of the buffer required to store a security identifier (SID) with a specified number of subauthorities.

RtlLengthSid

The RtlLengthSid routine returns the length, in bytes, of a valid security identifier (SID).

RtlLookupElementGenericTable

The RtlLookupElementGenericTable routine searches a generic table for an element that matches the specified data.

RtlLookupElementGenericTableAvl

The RtlLookupElementGenericTableAvl routine searches a generic table for an element that matches the specified data.

RtlLookupElementGenericTableFullAvl

The RtlLookupElementGenericTableFullAvl routine searches a generic table for an element that matches the specified data.

RtlLookupFirstMatchingElementGenericTableAvl

The RtlLookupFirstMatchingElementGenericTableAvl routine finds the left-most element in the tree that matches the indicated data.

RtlMultiByteToUnicodeN

The RtlMultiByteToUnicodeN routine translates the specified source string into a Unicode string, using the current system ANSI code page (ACP). The source string is not necessarily from a multibyte character set.

RtlMultiByteToUnicodeSize

The RtlMultiByteToUnicodeSize routine determines the number of bytes that are required to store the Unicode translation for the specified source string. The translation is assumed to use the current system ANSI code page (ACP). The source string is not necessarily from a multibyte character set.

RtlNextUnicodePrefix

The RtlNextUnicodePrefix routine is used to enumerate the elements in a Unicode prefix table.

RtlNtStatusToDosError

The RtlNtStatusToDosError routine converts the specified NTSTATUS code to its equivalent system error code.

RtlNtStatusToDosErrorNoTeb

Reserved for system use.

RtlNumberGenericTableElements

The RtlNumberGenericTableElements routine returns the number of elements in a generic table.

RtlNumberGenericTableElementsAvl

The RtlNumberGenericTableElementsAvl routine returns the number of elements in a generic table.

RtlOemStringToCountedUnicodeSize

The RtlOemStringToCountedUnicodeSize routine determines the size, in bytes, that a given OEM string will be after it is translated into a counted Unicode string.

RtlOemStringToCountedUnicodeString

The RtlOemStringToCountedUnicodeString routine translates the specified source string into a Unicode string using the current system OEM code page.

RtlOemStringToUnicodeSize

The RtlOemStringToUnicodeSize routine determines the size, in bytes, that a given OEM string will be after it is translated into a null-terminated Unicode string.

RtlxOemStringToUnicodeSize

Reserved for system use.

RtlOemStringToUnicodeString

The RtlOemStringToUnicodeString routine translates a given source string into a null-terminated Unicode string using the current system OEM code page.

RtlOemToUnicodeN

The RtlOemToUnicodeN routine translates the specified source string into a Unicode string, using the current system OEM code page.

RtlOffsetToPointer

The RtlOffsetToPointer routine returns a pointer for a given offset from a given base address.

RtlParent

The RtlParent routine returns a pointer to the parent of the specified node in a splay link tree.

RtlPointerToOffset

The RtlPointerToOffset routine returns the offset from a given base address of a given pointer.

RtlRandom

The RtlRandom routine returns a random number that was generated from a given seed value.

RtlRandomEx

The RtlRandomEx routine returns a random number that was generated from a given seed value.

RtlRealPredecessor

The RtlRealPredecessor routine returns a pointer to the predecessor of the specified node in the splay link tree.

RtlRealSuccessor

The RtlRealSuccessor routine returns a pointer to the successor of the specified node in the splay link tree.

RtlRemoveUnicodePrefix

The RtlRemoveUnicodePrefix routine removes an element from a prefix table.

RtlReserveChunk

Reserved for system use.

RtlRightChild

The RtlRightChild routine returns a pointer to the right child of the specified splay link node.

RtlSecondsSince1970ToTime

The RtlSecondsSince1970ToTime routine converts the elapsed time, in seconds, since the beginning of 1970 to an absolute system time value.

RtlSecondsSince1980ToTime

The RtlSecondsSince1980ToTime routine converts the elapsed time, in seconds, since the beginning of 1980 to an absolute system time value.

RtlSelfRelativeToAbsoluteSD

The RtlSelfRelativeToAbsoluteSD routine creates a new security descriptor in absolute format by using a security descriptor in self-relative format as a template.

RtlSetGroupSecurityDescriptor

The RtlSetGroupSecurityDescriptor routine sets the primary group information of an absolute-format security descriptor. It replaces any primary group information that is already present in the security descriptor.

RtlSetOwnerSecurityDescriptor

The RtlSetOwnerSecurityDescriptor routine sets the owner information of an absolute-format security descriptor. It replaces any owner information that is already present in the security descriptor.

RtlSplay

The RtlSplay routine rebalances, or "splays," a splay link tree around the specified splay link, making that link the new root of the tree.

RtlSubAuthorityCountSid

Reserved for system use.

RtlSubAuthoritySid

The RtlSubAuthoritySid routine returns a pointer to a specified subauthority of a security identifier (SID).

RtlSubtreePredecessor

The RtlSubtreePredecessor routine returns a pointer to the predecessor of the specified node within the subtree that is rooted at that node.

RtlSubtreeSuccessor

The RtlSubtreeSuccessor routine returns a pointer to the successor of the specified node within the subtree that is rooted at that node.

RtlTimeToSecondsSince1970

The RtlTimeToSecondsSince1970 routine converts a given absolute system time value to the elapsed time, in seconds, since the beginning of 1970.

RtlTimeToSecondsSince1980

The RtlTimeToSecondsSince1980 routine converts a given absolute system time value to the elapsed time, in seconds, since the beginning of 1980.

RtlUnicodeStringToAnsiSize

The RtlMultiByteToUnicodeSize routine determines the number of bytes that are required to store the ANSI translation for the specified Unicode string.

RtlUnicodeStringToCountedOemString

The RtlUnicodeStringToCountedOemString routine translates the specified Unicode source string into a counted OEM string using the current system OEM code page.

RtlUnicodeStringToOemSize

The RtlUnicodeStringToOemSize routine determines the size, in bytes, that a given Unicode string will be after it is translated into an OEM string.

RtlxUnicodeStringToOemSize

Reserved for system use.

RtlUnicodeStringToOemString

The RtlUnicodeStringToOemString routine translates a given Unicode source string into an OEM string using the current system OEM code page.

RtlUnicodeToCustomCPN

Reserved for system use.

RtlUnicodeToMultiByteN

The RtlUnicodeToMultiByteN routine translates the specified Unicode string into a new character string, using the current system ANSI code page (ACP). The translated string is not necessarily from a multibyte character set.

RtlUnicodeToMultiByteSize

The RtlUnicodeToMultiByteSize routine determines the number of bytes that are required to store the multibyte translation for the specified Unicode string. The translation is assumed to use the current system ANSI code page (ACP).

RtlUnicodeToOemN

The RtlUnicodeToOemN routine translates a given Unicode string to an OEM string, using the current system OEM code page.

RtlUpcaseUnicodeStringToCountedOemString

The RtlUpcaseUnicodeStringToCountedOemString routine translates a given Unicode source string into an uppercase counted OEM string using the current system OEM code page.

RtlUpcaseUnicodeStringToOemString

The RtlUpcaseUnicodeStringToOemString routine translates a given Unicode source string into an uppercase OEM string using the current system OEM code page.

RtlUpcaseUnicodeToCustomCPN

Reserved for system use.

RtlUpcaseUnicodeToMultiByteN

The RtlUpcaseUnicodeToMultiByteN routine translates the specified Unicode string into a new uppercase character string, using the current system ANSI code page (ACP). The translated string is not necessarily from a multibyte character set.

RtlUpcaseUnicodeToOemN

The RtlUpcaseUnicodeToOemN routine translates a given Unicode string into an uppercase OEM string, using the current system OEM code page.

RtlValidSid

The RtlValidSid routine validates a security identifier (SID) by verifying that the revision number is within a known range and that the number of subauthorities is less than the maximum.

 

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft