使用UNICODE_STRING 时,一定要手动设置UNICODE_STRING 的Length和MaximumLength 成员,不要想当然的认为设置了Buffer后,Length和MaximumLength 成员就会根据Buffer被自动设置。由其是当自己写的函数用UNICODE_STRING作为参数返回时,一定要设置Length和 MaximumLength 成员,不然很可能得到非预期结果。
// 测试
UNICODE_STRING usTest;
RtlInitUnicodeString(&usTest, NULL);
usTest.MaximumLength = 16;
usTest.Buffer = L"Hello";
usTest.Length = (USHORT)wcslen(usTest.Buffer);
TRACE_MSG(TL_NORMAL, "len:%d,maxlen:%d,buffer:%ws", usTest.Length, usTest.MaximumLength, usTest.Buffer);
posted on 2011-08-22 10:16
水 阅读(666)
评论(0) 编辑 收藏 引用 所属分类:
windows驱动