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