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


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

подпрограмма RtlOemToUnicodeN преобразует указанную исходную строку в строку Юникода, используя текущую кодовую страницу OEM системы.

Синтаксис

NTSYSAPI NTSTATUS RtlOemToUnicodeN(
  [out]           PWCH   UnicodeString,
  [in]            ULONG  MaxBytesInUnicodeString,
  [out, optional] PULONG BytesInUnicodeString,
  [in]            PCCH   OemString,
  [in]            ULONG  BytesInOemString
);

Параметры

[out] UnicodeString

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

[in] MaxBytesInUnicodeString

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

[out, optional] BytesInUnicodeString

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

[in] OemString

Указатель на исходную строку OEM, которая будет переведена в Юникод. Если текущая кодовая страница описывает однобайтовый набор символов, этот указатель может быть таким же адресом, как и ЮникодСтроинг.

[in] BytesInOemString

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

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

RtlOemToUnicodeN возвращает STATUS_SUCCESS, если полная строка в OemString успешно переведена и возвращена в ЮникодСтринг. В противном случае он может возвращать STATUS_BUFFER_OVERFLOW, если целевая строка должна быть усечена для соответствия заданной MaxBytesInUnicodeString. STATUS_BUFFER_OVERFLOW — это предупреждение NTSTATUS.

Замечания

RtlOemToUnicodeN поддерживает только предварительно скомпилированные символы Юникода, сопоставленные с текущей страницей кода OEM системы, установленной во время загрузки системы.

Если текущая системная кодовая страница определяет однобайтовый набор символов, все однобайтовые символы в диапазоне 0x00 до 0x7f просто не расширяются в соответствующей строке Юникода, чтобы ускорить операцию преобразования. Значение символа, 0x5c на такой кодовой странице, преобразуется в символ обратной косой черты, даже если текущая кодовая страница определяет этот символ как знак Йена.

Для возвращаемого значения STATUS_SUCCESS значение BytesInUnicodeStringуказывает длину возвращаемой строки Юникода, а не заданную MaxBytesInUnicodeString.

Эта подпрограмма не изменяет исходную строку, если указатели ЮникодString и OemString эквивалентны. Возвращаемая строка Юникода завершается null, если она не усечена.

Дополнительные сведения о других подпрограммах обработки строк см. в Run-Time подпрограммах библиотеки (RTL).

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

См. также

RtlOemStringToCountedUnicodeString

RtlOemStringToUnicodeString

RtlUnicodeToOemN