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


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

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

Синтаксис

NTSYSAPI NTSTATUS RtlMultiByteToUnicodeN(
  [out]           PWCH       UnicodeString,
  [in]            ULONG      MaxBytesInUnicodeString,
  [out, optional] PULONG     BytesInUnicodeString,
  [in]            const CHAR *MultiByteString,
  [in]            ULONG      BytesInMultiByteString
);

Параметры

[out] UnicodeString

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

[in] MaxBytesInUnicodeString

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

[out, optional] BytesInUnicodeString

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

[in] MultiByteString

Указатель на строку для перевода.

[in] BytesInMultiByteString

Размер строки в байтах по MultiByteString.

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

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

Замечания

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

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

Если текущая системная кодовая страница определяет однобайтовый набор символов, все символы ANSI в диапазоне 0x00 до 0x7f просто ноль расширены в соответствующей строке Юникода, чтобы ускорить операцию преобразования. Значение ANSI, 0x5c в такой кодовой странице, преобразуется в символ обратной косой черты, даже если текущая однобайтовая кодовая страница определяет этот символ как знак Иена.

RtlMultiByteToUnicodeN не изменяет исходную строку, если только ЮникодСтринг и MultiByteString указатели эквивалентны. Возвращаемая строка Юникода не завершается значением NULL.

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

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

Требования

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

См. также

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN