RtlUnicodeStringToAnsiString 函数 (winternl.h)

将指定的 Unicode 源字符串转换为 ANSI 字符串。

语法

NTSTATUS RtlUnicodeStringToAnsiString(
  [in, out] PANSI_STRING     DestinationString,
  [in]      PCUNICODE_STRING SourceString,
  [in]      BOOLEAN          AllocateDestinationString
);

参数

[in, out] DestinationString

指向 ANSI_STRING 结构的指针,用于保存转换后的 ANSI 字符串。 如果 AllocateDestinationStringTRUE,则例程将分配一个新缓冲区来保存字符串数据,并将 DestinationStringBuffer 成员更新为指向新缓冲区。 否则,例程使用当前指定的缓冲区来保存字符串。

[in] SourceString

包含要转换为 ANSI 的源字符串 的UNICODE_STRING 结构。

[in] AllocateDestinationString

控制 DestinationString 的缓冲区空间分配。

TRUE

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

FALSE

未为 DestinationString 分配缓冲区空间。

返回值

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

返回代码 说明
STATUS_SUCCESS
Unicode 字符串已转换为 ANSI。 否则,未分配任何存储,也未完成转换。

注解

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

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

要求

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