RtlUnicodeToMultiByteN 函数 (ntifs.h)
RtlUnicodeToMultiByteN 例程使用当前系统 ANSI 代码页 (ACP) 将指定的 Unicode 字符串转换为新的字符串。 转换后的字符串不一定来自多字节字符集。
语法
NTSYSAPI NTSTATUS RtlUnicodeToMultiByteN(
[out] PCHAR MultiByteString,
[in] ULONG MaxBytesInMultiByteString,
[out, optional] PULONG BytesInMultiByteString,
[in] PCWCH UnicodeString,
[in] ULONG BytesInUnicodeString
);
参数
[out] MultiByteString
指向调用方分配的缓冲区的指针,用于接收已翻译的字符串。 MultiByteString 缓冲区不得与 UnicodeString 缓冲区重叠。
[in] MaxBytesInMultiByteString
要写入 MultiByteString 的最大字节数。 如果此值导致已翻译的字符串被截断, 则 RtlUnicodeToMultiByteN 不会返回错误状态。
[out, optional] BytesInMultiByteString
指向调用方分配的变量的指针,该变量接收已翻译字符串的长度(以字节为单位)。 此参数是可选的,可以为 NULL。
[in] UnicodeString
指向要转换的 Unicode 源字符串的指针。
[in] BytesInUnicodeString
UnicodeString 处字符串的大小(以字节为单位)。
返回值
RtlUnicodeToMultiByteN 返回STATUS_SUCCESS。
注解
RtlUnicodeToMultiByteN 使用系统启动时安装的当前系统 ANSI 代码页转换给定的 Unicode 字符串。
尽管 BytesInMultiByteString 是可选的,可以为 NULL,但调用方应为其提供存储,因为接收的长度可用于确定转换是否成功。
此例程不会修改源字符串。 如果给定的 BytesInUnicodeString 包含 NULL 终止符,并且给定的 MaxBytesInMultiByteString 不会导致截断,则返回以 null 结尾的多字节字符串。
与 RtlUnicodeToMultiByteSize 一样, RtlUnicodeToMultiByteN 仅支持映射到系统启动时安装的当前系统 ANSI 代码页的预编译 Unicode 字符。
有关其他字符串处理例程的信息,请参阅 运行时库 (RTL) 例程。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Fltkernel.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |