Функция 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 |