首页
社区
课程
招聘
[求助]基础问题..这个值为什么会变成乱码?
发表于: 2009-8-12 01:43 3548

[求助]基础问题..这个值为什么会变成乱码?

2009-8-12 01:43
3548
基础问题..这个值为什么会变成乱码?

                if(KeyValueInformationClass == KeyValuePartialInformation)
                {
                        WCHAR*  pTempData;
                        ANSI_STRING anString;
                        ppartinfo   = (PKEY_VALUE_PARTIAL_INFORMATION)KeyValueInformation;
                        pTempData   = (WCHAR*)ExAllocatePool(PagedPool,(ppartinfo->DataLength + 100) * sizeof(WCHAR));
                        RtlCopyMemory(pTempData,ppartinfo->Data,ppartinfo->DataLength);

                        RtlInitAnsiString(&anString,ppartinfo->Data);
                        DbgPrint("anstring:%s\n",anString);
                        此处 ppartinfo->Data 是uchar 为什么用ansistring后是乱码?
                        而下面宽字符却正常?

                        RtlInitUnicodeString(&unString,(PWCHAR)ppartinfo->Data);
                        DbgPrint("Unstring:%ws\n",unString.Buffer);

                        DbgPrint("ppartinfo->data: %ws\n",ppartinfo->Data);

                        wcscat(pTempData,L"aaaa");
                        DbgPrint("pTempData:%ws\n",pTempData);
                        RtlInitUnicodeString(&unRegInfo,pTempData);
                        ............................................................
                        ExFreePool(pTempData);

                        //本处的unString.Buffer 打印出来为什么会是跟 unString 字符的结果是一样的?
                         而且有时候 zwsetvaluekey出来注册表里却是乱码?
                        DbgPrint("Unstring:%ws\n",unString.Buffer);
                        ZwSetValueKey(KeyHandle,ValueName,0,REG_SZ,unString.Buffer,unString.Length);
                }

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//