摘要: IRP中I/O堆栈Parameters.Create参数
在IO_STACK_LOCATION结构体中,Parameters这个union其中有个Create结构体,对应IRP_MJ_CREATE,此IRP的分发函数处理应用层的CreateFile函数,
CreateFile函数进入内核后是调用ZwCreateFile
在ZwCreateFile中设置的一些参数,在Parameters.Create中可以获取到。
阅读全文
posted @
2011-09-01 15:27 水 阅读(1412) |
评论 (0) |
编辑 收藏
摘要: 使用UNICODE_STRING 时,一定要手动设置UNICODE_STRING 的Length和MaximumLength 成员,不要想当然的认为设置了Buffer后,Length和MaximumLength 成员就会根据Buffer被自动设置。由其是当自己写的函数用UNICODE_STRING作为参数返回时,一定要设置Length和 MaximumLength 成员,不然很可能得到非预期结果。
阅读全文
posted @
2011-08-22 10:16 水 阅读(117) |
评论 (0) |
编辑 收藏
摘要: 在C++中,分配和归还内存时需要保持数组和非数组形式的操作符的匹配:
T *aT = new T; // 非数组
T *arrT = new T[16]; // 数组
delete aT; // 非数组
delete [] arrT; // 数组
aT = new T[1]; // 数组
delete aT; // 错误!应该采用数组形式的操作符
阅读全文
posted @
2011-06-29 08:47 水 阅读(1755) |
评论 (0) |
编辑 收藏
摘要: STL不但使我们能够更轻松、更快捷地编写复杂的代码,而且使编写的代码既标准又高度优化。
std::vector
names;
// ...
std::sort(names.begin(), names.end());
STL另一个优雅之处在于高度可配置。在以上的代码中,使用string的小于(<)操作符对vector中的string元素进行排序,但在其它场合,未必总有一个小于操作符可供使用,而且有时并不希望以升序方式进行排序。
阅读全文
posted @
2011-06-29 08:46 水 阅读(1553) |
评论 (1) |
编辑 收藏
摘要: 在vc2008 sp1中,引入了Feature Pack美化界面,不过微软提供的例子都是针对单文档或者多文档项目的,要在对话框项目中使用Feature Pack中的一些美化控件(如CMFCListCtrl),需要在App类(继承自CWinAppEx)的InitInstance函数中添加下面两行:
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
同时,在项目res目录下的rc2文件中添加#include
。
阅读全文
posted @
2010-11-16 18:46 水 阅读(1722) |
评论 (0) |
编辑 收藏