Поделиться через


Функция RtlUnicodeToMultiByteN (ntifs.h)

Подпрограмма RtlUnicodeToMultiByteN преобразует указанную строку Юникода в новую символьную строку, используя текущую кодовую страницу ANSI (ACP). Переведенная строка не обязательно из многобайтового набора символов.

Синтаксис

NTSYSAPI NTSTATUS RtlUnicodeToMultiByteN(
  [out]           PCHAR  MultiByteString,
  [in]            ULONG  MaxBytesInMultiByteString,
  [out, optional] PULONG BytesInMultiByteString,
  [in]            PCWCH  UnicodeString,
  [in]            ULONG  BytesInUnicodeString
);

Параметры

[out] MultiByteString

Указатель на выделенный вызывающим буфером для получения переведенной строки. буфер MultiByteString не должен перекрываться с буфером ЮникодString .

[in] MaxBytesInMultiByteString

Максимальное число байтов, записываемых в MultiByteString. Если это значение приводит к усечению переведенной строки, RtlUnicodeToMultiByteN не возвращает состояние ошибки.

[out, optional] BytesInMultiByteString

Указатель на выделенную вызывающим переменную, которая получает длину в байтах переведенной строки. Этот параметр является необязательным и может быть null.

[in] UnicodeString

Указатель на исходную строку Юникода, которая будет переведена.

[in] BytesInUnicodeString

Размер строки в байтах в ЮникодСтринг.

Возвращаемое значение

RtlUnicodeToMultiByteN возвращает STATUS_SUCCESS.

Замечания

RtlUnicodeToMultiByteN преобразует указанную строку Юникода с помощью текущей кодовой страницы ANSI, установленной во время загрузки системы.

Хотя BytesInMultiByteString является необязательным и может быть NULL, вызывающие должны предоставить для него хранилище, так как полученная длина может использоваться для определения успешности преобразования.

Эта подпрограмма не изменяет исходную строку. Он возвращает многобайтовую строку, завершающую значение NULL, если заданный BytesInUnicodeString включал конца NULL и если указанный MaxBytesInMultiByteString не вызвал усечение.

Как и RtlUnicodeToMultiByteSize, RtlUnicodeToMultiByteN поддерживает только предварительно скомпилированные символы Юникода, сопоставленные с текущей системной кодовой страницей ANSI, установленной при загрузке системы.

Дополнительные сведения о других подпрограммах обработки строк см. в Run-Time подпрограммах библиотеки (RTL).

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Fltkernel.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

См. также

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize

RtlUpcaseUnicodeToMultiByteN