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


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

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

Синтаксис

NTSYSAPI NTSTATUS RtlMultiByteToUnicodeSize(
  [out] PULONG     BytesInUnicodeString,
  [in]  const CHAR *MultiByteString,
  [in]  ULONG      BytesInMultiByteString
);

Параметры

[out] BytesInUnicodeString

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

[in] MultiByteString

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

[in] BytesInMultiByteString

Длина исходной строки в байтах.

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

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

Комментарии

RtlMultiByteToUnicodeSize можно вызвать, чтобы определить, сколько памяти необходимо выделить или, возможно, значение, указываемое для MaxBytesInUnicodeString, перед преобразованием многобайтовой строки в Юникод с помощью RtlMultiByteToUnicodeN. Возвращаемое значение не включает пробел для признака конца NULL для строки Юникода.

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

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

Требования

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

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

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize