Функция RtlUTF8ToUnicodeN

Преобразует указанную исходную строку в строку Юникода с помощью 8-разрядной кодовой страницы формата преобразования Юникода (UTF-8).

Синтаксис

NTSTATUS WINAPI RtlUTF8ToUnicodeN(
  _Out_     PWSTR  UnicodeStringDestination,
  _In_      ULONG  UnicodeStringMaxByteCount,
  _Out_opt_ PULONG UnicodeStringActualByteCount,
  _In_      PCCH   UTF8StringSource,
  _In_      ULONG  UTF8StringByteCount
);

Параметры

ЮникодStringDestination [out]

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

UnicodeStringMaxByteCount [in]

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

UnicodeStringActualByteCount [out, необязательный]

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

UTF8StringSource [in]

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

UTF8StringByteCount [in]

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

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

RtlUTF8ToUnicodeN возвращает одно из следующих значений NTSTATUS:

Код возврата Описание
STATUS_SUCCESS
Строка была преобразована в Юникод.
STATUS_SOME_NOT_MAPPED
Обнаружен недопустимый входной символ и заменен. Это состояние считается состоянием успешного выполнения.
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Оба указателя на UnicodeStringDestination и UnicodeStringActualByteCount были NULL.
STATUS_INVALID_PARAMETER_4
UTF8StringSource был NULL.
STATUS_BUFFER_TOO_SMALL
ЮникодStringDestination был усечен.

 

Замечания

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

Если выходные данные усечены и обнаружен недопустимый входной символ, функция возвращает STATUS_BUFFER_TOO_SMALL ошибку.

Если параметр ЮникодStringDestination имеет значение NULL , функция вернет требуемое количество байтов для размещения переведенной строки без усечения в ЮникодStringActualByteCount.

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

Вызовы RtlUTF8ToUnicodeN должны выполняться в IRQL < DISPATCH_LEVEL.

Требования

Требование Ценность
Минимальный поддерживаемый клиент
Windows 7 [только настольные приложения]
Минимальный поддерживаемый сервер
Windows Server 2008 R2 [только настольные приложения]
Заголовок
Wdm.h
Библиотека dll
Ntdll.dll

См. также

RtlUnicodeToUTF8N