Функция RtlUTF8ToUnicodeN
Преобразует указанную исходную строку в строку Юникода с помощью 8-разрядной кодовой страницы преобразования Юникод (UTF-8).
Синтаксис
NTSTATUS WINAPI RtlUTF8ToUnicodeN(
_Out_ PWSTR UnicodeStringDestination,
_In_ ULONG UnicodeStringMaxByteCount,
_Out_opt_ PULONG UnicodeStringActualByteCount,
_In_ PCCH UTF8StringSource,
_In_ ULONG UTF8StringByteCount
);
Параметры
-
UnicodeStringDestination [out]
-
Указатель на буфер, выделенный вызывающим объектом, который получает переведенную строку.
-
UnicodeStringMaxByteCount [in]
-
Максимальное число байтов, записываемых в UnicodeStringDestination. Если это значение приводит к усечению переведенной строки, RtlUTF8ToUnicodeN возвращает состояние ошибки.
-
UnicodeStringActualByteCount [out, optional]
-
Указатель на переменную, выделенную вызывающим объектом, которая получает длину переведенной строки в байтах. Этот параметр является необязательным и может иметь значение NULL. Если строка усечена, то возвращаемое число подсчитывает фактическое число усеченных строк.
-
UTF8StringSource [in]
-
Указатель на строку для перевода.
-
UTF8StringByteCount [in]
-
Размер строки в байтах в UTF8StringSource.
Возвращаемое значение
RtlUTF8ToUnicodeN возвращает одно из следующих значений NTSTATUS:
Код возврата | Описание |
---|---|
|
Строка была преобразована в Юникод. |
|
Обнаружен и заменен недопустимый входной символ. Это состояние считается состоянием успешного выполнения. |
|
Оба указателя на UnicodeStringDestination и UnicodeStringActualByteCount имели значение NULL. |
|
UTF8StringSource имеет значение NULL. |
|
ЮникодStringDestination был усечен. |
Комментарии
Хотя UnicodeStringActualByteCount является необязательным и может иметь значение NULL, вызывающие устройства должны предоставить для него хранилище, так как полученную длину можно использовать для определения успешности преобразования.
Если выходные данные усечены и обнаружен недопустимый входной символ, функция возвращает ошибку STATUS_BUFFER_TOO_SMALL.
Если параметру UnicodeStringDestination присвоено значение NULL , функция вернет необходимое количество байтов для размещения переведенной строки без усечения в UnicodeStringActualByteCount.
RtlUTF8ToUnicodeN не изменяет исходную строку, если только указатели UnicodeStringDestination и UTF8StringSource не эквивалентны. Возвращаемая строка Юникода не завершается null.
Вызывающие объект RtlUTF8ToUnicodeN должны выполняться на DISPATCH_LEVEL IRQL < .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 7 [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 R2 [только классические приложения] |
Заголовок |
|
DLL |
|
См. также раздел