深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(4)
2009-09-11 00:00:00 来源:WEB开发网参数KeyHandle为打开的注册表句柄。参数ValueName为要查询的键名。参数KeyValuelnformationClass决定不同的查询类别。参数KeyValuelnformation选择一种查询类别。选择KeyValueBasiclnformation、KeyValueFulllnformation或者KeyValuePartiallnformation。参数Length为要查数据的长度。参数ResultLength为实际查询返回的数据长度。
如果打开成功函数返回STATUS_SUCCESS,否则返回一个错误代码。
使用ZwQueryValueKey函数查询注册表单时,需要用KeyValuelnformationClass选择一种查询方式。这可以是KeyVajueBasiclnformation、KeyValueFulllnformation或者KeyValuePartiallnformation中的一种。这分别代表查询基本信息,查询全部信息和查询部分信息,每种查询类型会有对应的一种数据结构获得查询结果。
一般情况下,选择KeyValuePartiallnformation就可以查询键值的数据了,它对应的查询数据结构是KEY_VALUE_PARTIAL_INFORMATION的数据结构。
typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
ULONG TitleIndex;
ULONG Type;
ULONG DataLength;
UCHAR Data[1]; //变量的大小
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
KEY_VALUE_PARTIAL_INFORMATION的数据结构长度不固定,所以首先要确定这个长度。一般使用ZwQueryValueKey分为4个步骤操作。
Ø 用ZwQueryValueKey获取这个数据结构的长度。
Ø 分配如此长度的内存,用来查询。
Ø 再次调用ZwQueryValueKey,获取键值。
Ø 回收内存。
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接