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


Функция 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

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

[out, optional] BytesInUnicodeString

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

[in] OemString

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

[in] BytesInOemString

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

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

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

Комментарии

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

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

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

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

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

Требования

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

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

RtlOemStringToCountedUnicodeString

RtlOemStringToUnicodeString

RtlUnicodeToOemN