6、字符串轉(zhuǎn)化成大寫
/************************************************************************
* 函數(shù)名稱:RtlUpperString
* 功能描述:UNICODE_STRING字符串轉(zhuǎn)化成大寫
* 參數(shù)列表:
DestinationString:目的字符串
SourceString:源字符串
* 返回 值:VOID
*************************************************************************/
VOID RtlUpperString(
IN OUT PSTRING DestinationString,
IN PSTRING SourceString);
/************************************************************************
* 函數(shù)名稱:RtlUpperString
* 功能描述:UNICODE_STRING字符串轉(zhuǎn)化成大寫
* 參數(shù)列表:
DestinationString:目的字符串
SourceString:源字符串
AllocateDesttinationString:是否為目的字符串分配內(nèi)存
* 返回 值:VOID
*************************************************************************/
NTSTATUS RtlUpcaseUnicodeString(
IN OUT PUNICODE_STRING DestinationString OPTIONAL,
IN PCUNICODE_STRING SourceString,
IN BOOLEAN AllocateDesttinationString);
如何使用RtlUpcaseUnicodeString函數(shù)
//初始化UnicodeString1
UNICODE_STRING UnicodeString1;
RtlInitUnicodeString(&UnicodeString1, L“Hello World”);
//變化錢
KdPrint((“UnicodeString1:%wZ\n”, &UnicodeString1));
//轉(zhuǎn)換成大寫
RtlUpcaseUnicodeString(&UnicodeString1,&UnicodeString2,F(xiàn)ALSE);
//變化后
KdPrint((“UnicodeString1:%wZ\n”, &UnicodeString1));
7、字符串與整型數(shù)字相互轉(zhuǎn)換
/************************************************************************
* 函數(shù)名稱:RtlUnicodeStringToInteger
* 功能描述:UNICODE_STRING字符串轉(zhuǎn)化成整型數(shù)字
* 參數(shù)列表:
String:需要轉(zhuǎn)化的字符串
Base:轉(zhuǎn)換的數(shù)的進制(2,8,10,16)
Value:需要轉(zhuǎn)換的數(shù)字
* 返回 值:指明是否轉(zhuǎn)換成功
*************************************************************************/
NTSTATUS RtlUnicodeStringToInteger(
IN PUNICODE_STRING String,
IN ULONG Base OPTIONAL,
OUT PULONG Value);
/************************************************************************
* 函數(shù)名稱:RtlIntegerToUnicodeString
* 功能描述:UNICODE_STRING字符串轉(zhuǎn)化成整型數(shù)字
* 參數(shù)列表:
Value:需要轉(zhuǎn)化的數(shù)字
Base:轉(zhuǎn)換的數(shù)的進制(2,8,10,16)
String:需要轉(zhuǎn)換的字符串
* 返回 值:指明是否轉(zhuǎn)換成功
*************************************************************************/
NTSTATUS RtlIntegerToUnicodeString(
IN ULONG Value,
IN ULONG Base OPTIONAL,
OUT PUNICODE_STRING String);
字符串與整型數(shù)字相互轉(zhuǎn)換的實例
//(1)字符串轉(zhuǎn)換成數(shù)字
//初始化UnicodeString1
UNICODE_STRING UnicodeString1;
RtlInitUnicodeString(&UnicodeString1, L“-100”);
ULONG lNumber;
NTSTATUS nStatus = RtlUnicodeStringToInteger(&UnicodeString1, 10, &lNumber);
if( NT_SUCCESS(nStatus) )
{
KdPrint((“Conver To Integer successfullu!\n”));
KdPrint((“Result:%d\n”, lNumber));
}
else
{
KdPrint((“Conver to integer unsuccessfully!\n”));
}
//(2)數(shù)字轉(zhuǎn)換成字符串
//初始化UnicodeString2
UNICODE_STRING UnicodeString2;
UnicodeString2.Buffer = (PWSTR)ExAllocatePool(PagedPool, BUFFER_SIZE);
UnicodeString2.MaximumLength = BUFFER_SIZE;
nStatus = RtlIntegerToUnicodeString(200, 10, &UnicodeString2);
if( NT_SUCCESS(nStatus) )
{
KdPrint((“Conver to string successfuall!\n”));
KdPrint((“Result:%wZ\n”, &UnicodeString2));
}
else
{
KdPrint((“Conver to string unsuccessfully!\n”));
}
//注銷UniocdeString2
//注意:UnicodeString1不用銷毀
RtlFreeUnicodeString(&UniocdeString2);
評論
查看更多