RtlAppendUnicodeStringToString会蓝屏?

c289344670   2009-7-10 15:18 楼主
我在驱动里写了个函数如下


  1. VOID SetFuck(PUNICODE_STRING szName)
  2. {
  3.         UNICODE_STRING dst,src,ValueName;
  4.         RtlInitEmptyUnicodeString(&dst,L"",256*sizeof(WCHAR));
  5.         RtlInitUnicodeString(&src,USBSTOR);
  6.         RtlCopyUnicodeString(&dst,&src);
  7.        
  8.         RtlAppendUnicodeStringToString(&dst,szName);//这句会蓝
  9. }


我在DriverEntry中是这么调用的:



  1.         RtlInitUnicodeString(&uniCode,L"FUCK");

  2.         SetFuck(&uniCode);


蓝屏后我用WinDbg打开那个Dmp文件发现是那句不对,造成了蓝屏。但是在那个函数中定义的UNICODE_STRING就可以顺利的RtlAppendUnicodeStringToString不会出问题,难道不能用参数传递进来连接吗?

回复评论 (2)

你的缓冲区没弄好,当然有问题

这样试试

WCHAR dstBuffer[256];
RtlInitEmptyUnicodeString(&dst,dstBuffer,256*sizeof(WCHAR));
点赞  2009-7-10 20:17
注意字符串的缓冲区长度是否容纳的下
点赞  2009-7-10 20:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复