阅读:1506回复:4
关于UNICODE_STRING的Buffer
UNICODE_STRING nameString;
DbgPrint("Buffer: %ws\n",nameString->Buffer)怎么会有乱码? 如果这样 PWSTR buffer=(PWSTR)ExAllocatePool(NonPagedPool,nameString->Length); RtlCopyMemory(buffer,FileName->Buffer,FileName->Length); buffer还是有乱码 。。。。 |
|
沙发#
发布于:2007-04-16 08:31
UNICODE_STRING中的BUFFER并非是以UNICODE_NULL结尾的字符串,
所以上面的代码都存在问题. PWSTR buffer=(PWSTR)ExAllocatePool(NonPagedPool,nameString->Length+1); RtlZeroMemory(buffer, (nameString->Length+1)); RtlCopyMemory(buffer,FileName->Buffer,FileName->Length); |
|
|
板凳#
发布于:2007-04-17 01:02
楼上说的对,典型的nameString->Length没处理,数据未初始化
|
|
|
地板#
发布于:2007-04-26 08:26
引用第1楼devia于2007-04-16 10:31发表的“”: PWSTR buffer=(PWSTR)ExAllocatePool(NonPagedPool,nameString->Length+2 * sizeof(WCHAR)); RtlZeroMemory(buffer, (nameString->Length+2 * sizeof(WCHAR))); |
|
|