RtlUnicodeStringToAnsiString

NTSTATUS
    RtlUnicodeStringToAnsiString(

        IN OUT PANSI_STRING  DestinationString,            /* optional */
        IN PUNICODE_STRING  SourceString,
        IN BOOLEAN  AllocateDestinationString
        );

RtlUnicodeStringToAnsiString converts a given Unicode string into an ANSI string. The translation is done in accord with the current system-locale information.

Parameters

DestinationString
Points to a caller-allocated buffer for the ANSI string or is NULL if AllocateDestinationString is set to TRUE. If the translation cannot be done because a character in the Unicode string does not map to an ANSI character in the current system locale, an error is returned.
SourceString
Points to the Unicode source string to be converted to ANSI.
AllocateDestinationString
TRUE if this routine is to allocate the buffer space for the DestinationString. If it does, the buffer must be deallocated by calling RtlFreeAnsiString.

Return Value

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

Comments

Callers of RtUnicodeStringToAnsiString must be running at IRQL PASSIVE_LEVEL.

See Also

RtlAnsiStringToUnicodeString, RtlFreeAnsiString