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

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

Синтаксис

NTSYSAPI NTSTATUS RtlUnicodeToMultiByteSize(
  [out] PULONG BytesInMultiByteString,
  [in]  PCWCH  UnicodeString,
  [in]  ULONG  BytesInUnicodeString
);

Параметры

[out] BytesInMultiByteString

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

[in] UnicodeString

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

[in] BytesInUnicodeString

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

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

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

Комментарии

RtlUnicodeToMultiByteSize можно вызвать, чтобы определить, сколько памяти необходимо выделить или, возможно, значение, указываемое для MaxBytesInMultiByteString, перед преобразованием строки Юникода в ANSI с помощью RtlUnicodeToMultiByteN или RtlUpcaseUnicodeToMultiByteN. Возвращаемое значение не содержит пробел для признака конца NULL для строки ANSI.

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

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

Требования

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

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

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN

RtlUpcaseUnicodeToMultiByteN