RtlDowncaseUnicodeString - NtDoc

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

NTSYSAPI
NTSTATUS
NTAPI
RtlDowncaseUnicodeString(
    _Inout_ PUNICODE_STRING DestinationString,
    _In_ PCUNICODE_STRING SourceString,
    _In_ BOOLEAN AllocateDestinationString
    );

#endif

View code on GitHub
// ntifs.h

NTSYSAPI NTSTATUS RtlDowncaseUnicodeString(
       PUNICODE_STRING  DestinationString,
  [in] PCUNICODE_STRING SourceString,
  [in] BOOLEAN          AllocateDestinationString
);
View the official Windows Driver Kit DDI reference

NtDoc

This function is documented in Windows Driver Kit.

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

RtlDowncaseUnicodeString function

Description

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

Parameters

DestinationString

Pointer to a caller-allocated buffer to receive the converted Unicode string. If AllocateDestinationString is FALSE, the caller must also allocate a buffer for the Buffer member of DestinationString to hold the Unicode data. If AllocateDestinationString is TRUE, RtlDowncaseUnicodeString allocates a buffer large enough to hold the string, passes a pointer to it in Buffer, and updates the length and maximum length members of DestinationString accordingly.

SourceString [in]

Pointer to the source Unicode string to be converted to lowercase.

AllocateDestinationString [in]

Set to TRUE if RtlDowncaseUnicodeString should allocate the buffer space for the DestinationString, FALSE otherwise. If this parameter is TRUE, the caller is responsible for freeing the buffer when it is no longer needed by calling RtlFreeUnicodeString.

Return value

If the operation succeeds, RtlDowncaseUnicodeString returns STATUS_SUCCESS. Otherwise, no storage was allocated and no conversion was done.

Remarks

If caller sets AllocateDestinationString to TRUE, RtlDowncaseUnicodeString replaces the Buffer member of DestinationString with a pointer to the buffer it allocates. The old value can be overwritten even when the routine returns an error status code.

RtlDowncaseUnicodeString does not modify the source string.

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

See also

RtlFreeUnicodeString

RtlUpcaseUnicodeString

UNICODE_STRING