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 字符串。 如果 AllocateDestinationStringTRUE,则例程分配一个新缓冲区来保存字符串数据,并将 DestinationStringBuffer 成员更新为指向新缓冲区。 否则,例程使用当前指定的缓冲区来保存字符串。

[in] SourceString

指向 ANSI_STRING 结构的指针,该结构包含要转换为 Unicode 的 ANSI 字符串。

[in] AllocateDestinationString

控制目标字符串的缓冲区空间分配。

TRUE

DestinationString 分配缓冲区空间。 如果设置为 TRUE,则必须使用 RtlFreeUnicodeString 解除分配缓冲区。

FALSE

未为 DestinationString 分配缓冲区空间。

返回值

NTSTATUS 中定义了各种 NTSTATUS 值。H,随 Windows DDK 一起分发。

返回代码 说明
STATUS_SUCCESS
ANSI 字符串已转换为 Unicode。 失败时,例程不会分配任何内存。

注解

转换是针对当前系统区域设置信息完成的。

如果调用方将 AllocateDestinationString 设置为 TRUE,则例程会将 DestinationStringBuffer 成员替换为指向它分配的缓冲区的指针。 即使例程返回错误状态代码,也可以覆盖旧值。

由于此函数没有导入库,因此必须使用 GetProcAddress

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winternl.h
Library ntdll.lib
DLL ntdll.dll