- 博客(5)
- 收藏
- 关注
原创 RtlInitUnicodeString注意事项
代码1:UNICODE_STRING US1;RtlInitUnicodeString(&US1,L"DDDD");会动态分配一块指向“DDDD”的内存指针,赋值给US1.Buffer;代码2:wchar_t tmpstr[260]={0};UNICODE_STRING US1;RtlInitUnicodeString(&US1,tmpstr);这时US1.
2012-12-17 16:22:11 7237 1
原创 RtlUnicodeStringPrintf注意事项
RtlUnicodeStringPrintf(&DestFile,L"%sV.DAT",Dir);结果DestFile内容根本不对,被截断了。原因DestFile初始化时分配内存不够,而RtlUnicodeStringPrintf并不会动态修改内存适应最终字符串。解决办法:RtlInitUnicodeString要分配足够长度的内存
2012-12-17 15:29:09 2391
原创 UNICODE_STRING 未初始化导致的崩溃
上午还正常的驱动,下午改了些代码,运行突然就蓝屏了。立刻用WINDBG看了CASH文件,大概确定是操作一个UNICODE_STRING变量导致的崩溃。经过调试错误是发生在RtlUnicodeStringPrintf(&DestFile,L"%wsAY.DAT",dir);解决办法:需要RtlInitUnicodeString初始化DestFile(UNICODE
2012-12-17 15:16:31 1559
原创 驱动开发中函数内存分配
#ifdef ALLOC_PRAGMA #pragma alloc_text(INIT, DriverEntry) #pragma alloc_text(PAGE, PreCreate) #endif 认情况下,内核加载器会加载所有的代码部分和全局数据到非分页内存中。而且,加载器是一次加载整个驱动的可执行文件,包括相关的DLL。加载后,内核加载器关闭驱动程序文件,甚
2012-12-13 13:25:16 1386
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人