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