NTSTATUS
RtlUpcaseUnicodeString(
IN OUT PUNICODE_STRING DestinationString OPTIONAL,
IN PCUNICODE_STRING SourceString,
IN BOOLEAN AllocateDestinationString
);
在RtlUpcaseUnicodeString日常转换的源字符串复制到大写和写入的目标缓冲区转换成字符串。
DestinationString 指针调用者分配转换为Unicode字符串缓冲区。
SourceString 指向源Unicode字符串转换为大写。
AllocateDestinationString 指定是否RtlUpcaseUnicodeString是分配为DestinationString缓冲空间。
如果是这样,缓冲区,必须通过调用RtlFreeUnicodeString释放。
返回值
如果操作成功,RtlUpcaseUnicodeString返回了STATUS_SUCCESS。
否则,任何储存的分配,并没有转换已完成。
驱动程序中使用的字符操作函数,这里给出ANSI和UNICODE的对比
操作 | ANSI串函数 | Unicode串函数 |
Length | Strlen | wcslen |
Concatenate | Strcat strncat | Wcscat wcsncat RtlAppendUnicodeStringToString RtlAppendUnicodeToString |
Copy | Strcpy strncpy RtlCopyString | Wcscpy wcsncpy TrlCopyUnicodeString |
Reverse | _strrev | _wcsrev |
Compare | Strcmp Strncmp _stricmp _strnicmp RtlCompareString RtlEqualString | Wcscmp Wcsncmp _wcsicmp _wcsnicmp RtlCompareUnicodeString RtlEqualUnicodeString RtlPrefixUnicodeString |
Initialize | _strset _strnset RtlInitAnsiString RtlInitString | _wcsnset RtlInitUnicodeString |
Search | Strchr strrchr strspn strstr | Wcschr wcsrchr wcsspn wcsstr |
Upper/Lowercase | _strlwr _strupr RtlUpperString, | _wcslwr _wcsupr RtlUpcaseUnicodeString |
Character | isdigit islower isprint isspace isupper isxdigit tolower toupper RtlUpperChar | Towolower towupper RtlUpcaseUnicodeString |
Format | Sprintf vsprintf _snprintf _vsnprintf | Swprintf _snwprintf |
String Conversion | Atoi Atoll _itoa | _itow RtlIntegerToUnicodeString RtlUnicodeStringToInteger |
Type conversion | RtlAnsiStringToUnicodeString RtlAnsiStringToUnicodeString | RtlUnicodeStringToAnsiString |
Memory Release | RtlFreeAnsiString | RtlFreeUnicodeString |
转:http://hi.baidu.com/%B3%FE%D0%F9%B1%F9%C0%B6/blog/item/eca0a076e0ba2213b051b984.html