RtlUpcaseUnicodeStringToCountedOemString 函数 (ntifs.h)

RtlUpcaseUnicodeStringToCountedOemString 例程使用当前系统 OEM 代码页将给定的 Unicode 源字符串转换为大写计数的 OEM 字符串。

语法

NTSYSAPI NTSTATUS RtlUpcaseUnicodeStringToCountedOemString(
       POEM_STRING      DestinationString,
  [in] PCUNICODE_STRING SourceString,
  [in] BOOLEAN          AllocateDestinationString
);

参数

DestinationString

指向调用方分配的缓冲区的指针,用于接收计数的 OEM 字符串。 如果 AllocateDestinationString 为 FALSE,则调用方还必须为 DestinationStringBuffer 成员分配缓冲区以保存 OEM 数据。 如果 AllocateDestinationString 为 TRUE, 则 RtlUpcaseUnicodeStringToCountedOemString 将分配一个足够大的缓冲区来保存字符串,在 Buffer 中传递指向该字符串的指针,并相应地更新 DestinationString 的长度和最大长度成员。

[in] SourceString

指向要转换的 Unicode 字符串的指针。

[in] AllocateDestinationString

如果 RtlUpcaseUnicodeStringToCountedOemString 应为 DestinationString 分配缓冲区空间,则设置为 TRUE,否则设置为 FALSE。 如果此参数为 TRUE,则调用方负责通过调用 RtlFreeOemString 在不再需要缓冲区时释放缓冲区。

返回值

如果 RtlUpcaseUnicodeStringToCountedOemStringDestinationString 处返回已翻译的字符串,则返回STATUS_SUCCESS。 否则,不会分配任何存储,也不会执行任何转换。 如果无法转换给定 SourceString 中的字符,它将返回STATUS_UNMAPPABLE_CHARACTER。

注解

RtlUpcaseUnicodeStringToCountedOemString 返回一个不以 null 结尾的字符串。 它使用在系统启动时作为当前系统代码页安装的 OEM 代码页转换给定的源字符串,并将转换后的字符串转换为大写。

若要在给定的源字符串中查找任何特殊字符(如版权字符)的最佳匹配映射, RtlUpcaseUnicodeStringToCountedOemString 执行以下操作:

  1. SourceString 中 Unicode 字符串的副本转换为 OEM 字符串

  2. 将 OEM 字符串转换回 Unicode

  3. 将此新的 Unicode 字符串转换为大写

  4. 将大写 Unicode 字符串转换为计数的 OEM 字符串,并在 DestinationString 处返回它

此例程不会修改源字符串。

有关其他字符串处理例程的信息,请参阅 运行时库 (RTL) 例程

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

OEM_STRING

RtlFreeOemString

RtlOemStringToCountedUnicodeString

RtlUnicodeStringToCountedOemString

RtlUnicodeStringToOemSize

RtlUpcaseUnicodeStringToOemString

RtlUpcaseUnicodeToOemN

UNICODE_STRING