RtlUpcaseUnicodeStringToCountedOemString 函数 (ntifs.h)
RtlUpcaseUnicodeStringToCountedOemString 例程使用当前系统 OEM 代码页将给定的 Unicode 源字符串转换为大写计数的 OEM 字符串。
语法
NTSYSAPI NTSTATUS RtlUpcaseUnicodeStringToCountedOemString(
POEM_STRING DestinationString,
[in] PCUNICODE_STRING SourceString,
[in] BOOLEAN AllocateDestinationString
);
参数
DestinationString
指向调用方分配的缓冲区的指针,用于接收计数的 OEM 字符串。 如果 AllocateDestinationString 为 FALSE,则调用方还必须为 DestinationString 的 Buffer 成员分配缓冲区以保存 OEM 数据。 如果 AllocateDestinationString 为 TRUE, 则 RtlUpcaseUnicodeStringToCountedOemString 将分配一个足够大的缓冲区来保存字符串,在 Buffer 中传递指向该字符串的指针,并相应地更新 DestinationString 的长度和最大长度成员。
[in] SourceString
指向要转换的 Unicode 字符串的指针。
[in] AllocateDestinationString
如果 RtlUpcaseUnicodeStringToCountedOemString 应为 DestinationString 分配缓冲区空间,则设置为 TRUE,否则设置为 FALSE。 如果此参数为 TRUE,则调用方负责通过调用 RtlFreeOemString 在不再需要缓冲区时释放缓冲区。
返回值
如果 RtlUpcaseUnicodeStringToCountedOemString 在 DestinationString 处返回已翻译的字符串,则返回STATUS_SUCCESS。 否则,不会分配任何存储,也不会执行任何转换。 如果无法转换给定 SourceString 中的字符,它将返回STATUS_UNMAPPABLE_CHARACTER。
注解
RtlUpcaseUnicodeStringToCountedOemString 返回一个不以 null 结尾的字符串。 它使用在系统启动时作为当前系统代码页安装的 OEM 代码页转换给定的源字符串,并将转换后的字符串转换为大写。
若要在给定的源字符串中查找任何特殊字符(如版权字符)的最佳匹配映射, RtlUpcaseUnicodeStringToCountedOemString 执行以下操作:
将 SourceString 中 Unicode 字符串的副本转换为 OEM 字符串
将 OEM 字符串转换回 Unicode
将此新的 Unicode 字符串转换为大写
将大写 Unicode 字符串转换为计数的 OEM 字符串,并在 DestinationString 处返回它
此例程不会修改源字符串。
有关其他字符串处理例程的信息,请参阅 运行时库 (RTL) 例程。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |
另请参阅
RtlOemStringToCountedUnicodeString
RtlUnicodeStringToCountedOemString