zcc1414

博客园 首页 联系 订阅 管理

代码:

	KdPrint(("ANSI:\n"));
	CHAR *string = "Hello";
	KdPrint(("%s\n",string));
	
	WCHAR *string2 = L"Hello2";
	KdPrint(("%S\n",string2));
	
	ANSI_STRING ansistring ;
	CHAR *charstring = "hello";
	RtlInitAnsiString(&ansistring,charstring);


	KdPrint(("%Z\n",&ansistring));
	charstring[0] = 'H';
	KdPrint(("%Z\n",&ansistring));
	
	RtlInitAnsiString(&ansistring,"ansistring");
	
	KdPrint(("%Z\n",&ansistring));


		KdPrint(("UNICODE:\n"));
	UNICODE_STRING unicodestring;
	RtlInitUnicodeString(&unicodestring,L"unicodestring");
	KdPrint(("%wZ\n",&unicodestring));


	KdPrint(("UNICODE 复制:\n"));
	UNICODE_STRING unicodestring1;
	RtlInitUnicodeString(&unicodestring1,L"unicodestring can Copy!");


		UNICODE_STRING unicodestring2;
		unicodestring2.Buffer = (PWCHAR)ExAllocatePool(PagedPool,1024);
		unicodestring2.MaximumLength = 1024;


		RtlCopyUnicodeString(&unicodestring2,&unicodestring1);
		KdPrint(("UNICODE1 :   %wZ\n",&unicodestring1));
		KdPrint(("UNICODE2 :   %wZ\n",&unicodestring2));


		if (!RtlCompareUnicodeString(&unicodestring1,&unicodestring2,true))
		{
			KdPrint(("返回值等于0 代表 相同RtlCompareUnicodeString 比较相同"));
		}
		if (RtlEqualUnicodeString(&unicodestring1,&unicodestring2,true))
		{
			KdPrint(("返回值大于0 代表 相同RtlEqualUnicodeString 比较相同"));
		}
		RtlFreeUnicodeString(&unicodestring2);


		KdPrint(("UNICODE_STRING 转换为大写\n"));
		
		RtlUpcaseUnicodeString(&unicodestring1,&unicodestring1,FALSE);
		KdPrint(("%wZ\n",&unicodestring1));


		KdPrint(("UNICODE转数\n"));
		
		UNICODE_STRING StrToInteger;
		RtlInitUnicodeString(&StrToInteger,L"-100");
		
		ULONG lNumber;
		NTSTATUS status2 = RtlUnicodeStringToInteger(&StrToInteger,10,&lNumber);
		
		if (NT_SUCCESS(status2))
		{
			KdPrint(("转换成功!  lNumber = %d\n",lNumber));
		}
		else
			KdPrint(("转换失败!"));


		KdPrint(("数转UNICODE\n"));
		UNICODE_STRING IntegerToStr = {0};
		IntegerToStr.Buffer = (PWCHAR)ExAllocatePool(PagedPool,1024);
		IntegerToStr.MaximumLength = 1024;


		status2 = RtlIntegerToUnicodeString(200,10,&IntegerToStr);
		
		if (NT_SUCCESS(status2))
		{
			KdPrint(("转换成功!  Str = %wZ\n",&IntegerToStr));
		}
		else
			KdPrint(("转换失败"));
		
		
			KdPrint(("\n"));
			UNICODE_STRING unicodestringToansistring;
			ANSI_STRING ansistring2;
			RtlInitUnicodeString(&unicodestringToansistring,L"UNICODETOANSISTRING");


			NTSTATUS status3 = RtlUnicodeStringToAnsiString(&ansistring2,&unicodestringToansistring,TRUE);


			if (NT_SUCCESS(status3))
			{
				KdPrint(("UNICODE转换ANSI 成功"));
				KdPrint(("%Z",&ansistring2));
			}
			else
				KdPrint(("UNICODE转换ANSI 失败"));


			RtlFreeAnsiString(&ansistring2);
// 			
			KdPrint(("\n"));
			
			ANSI_STRING ansistring3;
			RtlInitAnsiString(&ansistring3,"ANSISTRINGTOUNICODE");


			UNICODE_STRING ansistringTounicodestring;
			NTSTATUS status4 = RtlAnsiStringToUnicodeString(&ansistringTounicodestring,&ansistring3,TRUE);
			
			if (NT_SUCCESS(status4))
			{
				KdPrint(("ANSI转换UNICODE 成功"));
				KdPrint(("%wZ",&ansistringTounicodestring));
			}
			else
				KdPrint(("ANSI转换UNICODE 失败"));
			
			RtlFreeUnicodeString(&ansistringTounicodestring);



posted on 2013-08-31 09:33  zcc1414  阅读(184)  评论(0编辑  收藏  举报