使用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
水 閱讀(682)
評論(0) 編輯 收藏 引用 所屬分類:
windows驅動