RtlAnsiStringToUnicodeString 函数 (winternl.h)
将指定的 ANSI 源字符串转换为 Unicode 字符串。
语法
NTSTATUS RtlAnsiStringToUnicodeString(
[in, out] PUNICODE_STRING DestinationString,
[in] PCANSI_STRING SourceString,
[in] BOOLEAN AllocateDestinationString
);
参数
[in, out] DestinationString
指向 UNICODE_STRING 结构的指针,用于保存转换后的 Unicode 字符串。 如果 AllocateDestinationString 为 TRUE,则例程分配一个新缓冲区来保存字符串数据,并将 DestinationString 的 Buffer 成员更新为指向新缓冲区。 否则,例程使用当前指定的缓冲区来保存字符串。
[in] SourceString
指向 ANSI_STRING 结构的指针,该结构包含要转换为 Unicode 的 ANSI 字符串。
[in] AllocateDestinationString
控制目标字符串的缓冲区空间分配。
TRUE
为 DestinationString 分配缓冲区空间。 如果设置为 TRUE,则必须使用 RtlFreeUnicodeString 解除分配缓冲区。
FALSE
未为 DestinationString 分配缓冲区空间。
返回值
NTSTATUS 中定义了各种 NTSTATUS 值。H,随 Windows DDK 一起分发。
返回代码 | 说明 |
---|---|
|
ANSI 字符串已转换为 Unicode。 失败时,例程不会分配任何内存。 |
注解
转换是针对当前系统区域设置信息完成的。
如果调用方将 AllocateDestinationString 设置为 TRUE,则例程会将 DestinationString 的 Buffer 成员替换为指向它分配的缓冲区的指针。 即使例程返回错误状态代码,也可以覆盖旧值。
由于此函数没有导入库,因此必须使用 GetProcAddress。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winternl.h |
Library | ntdll.lib |
DLL | ntdll.dll |