RtlOemToUnicodeN 例程使用当前系统 OEM 代码页将指定的源字符串转换为 Unicode 字符串。
语法
NTSYSAPI NTSTATUS RtlOemToUnicodeN(
[out] PWCH UnicodeString,
[in] ULONG MaxBytesInUnicodeString,
[out, optional] PULONG BytesInUnicodeString,
[in] PCCH OemString,
[in] ULONG BytesInOemString
);
参数
[out] UnicodeString
指向接收已转换字符串的调用方分配的缓冲区的指针。
[in] MaxBytesInUnicodeString
要以 UnicodeString写入的最大字节数。 如果此值导致转换后的字符串被截断,RtlOemToUnicodeN 不会返回错误状态。
[out, optional] BytesInUnicodeString
指向调用方分配的变量的指针,该变量接收已转换字符串的长度(以字节为单位)。 此参数可以 NULL。
[in] OemString
指向要转换为 Unicode 的 OEM 源字符串的指针。 如果当前代码页描述单字节字符集,此指针的地址可以与 UnicodeString相同。
[in] BytesInOemString
OemString处字符串的长度(以字节为单位)。
返回值
RtlOemToUnicodeN 返回STATUS_SUCCESS如果 OemString 的完整字符串已成功转换并在 unicodeString返回。 否则,如果必须截断目标字符串以适应给定的 MaxBytesInUnicodeString,则它可以返回STATUS_BUFFER_OVERFLOW。 STATUS_BUFFER_OVERFLOW是一个警告 NTSTATUS 值。
言论
RtlOemToUnicodeN 仅支持映射到系统启动时安装的当前系统 OEM 代码页的预编译 Unicode 字符。
如果当前系统代码页定义了单字节字符集,则范围中的所有单字节字符0x00到0x7f只是在相应的 Unicode 字符串中以零扩展来加快转换作的速度。 此类代码页中的字符值0x5c转换为反斜杠字符,即使当前代码页将此字符定义为日元符号也是如此。
对于返回值STATUS_SUCCESS,BytesInUnicodeString(如果有)的值指示返回的 Unicode 字符串的长度,而不是给定的 MaxBytesInUnicodeString。
除非 UnicodeString 和 OemString 指针等效,否则此例程不会修改源字符串。 如果未截断返回的 Unicode 字符串,则返回的 Unicode 字符串以 null 结尾。
有关其他字符串处理例程的信息,请参阅 Run-Time Library (RTL) 例程。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |