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


Функция 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 не должен перекрываться с буфером UnicodeString.

[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, установленной при загрузке системы.

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Fltkernel.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

См. также раздел

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize

RtlUpcaseUnicodeToMultiByteN