深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(4)
2009-09-11 00:00:00 来源:WEB开发网如果选择KeyValueFulllnformation,它对应的查询数据结构是KEY_VALUE_FULL_INFORMATION的数据结构。
typedef struct _KEY_VALUE_FULL_INFORMATION {
ULONG TitleIndex;
ULONG Type;
ULONG DataOffset;
ULONG DataLength;
ULONG NameLength;
WCHAR Name[1]; //变量的大小
} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
1.1.1.5 枚举子项
在注册表的操作中,还经常有另外两种操作,分别是枚举子项和枚举子键。枚举子项就是事先不知道该项中有多少个子项目,用某个函数将子项一一列举出来。而枚举子键是事先不知道该项中有多少个子键,用某个函数一一将子键列举出来。
DDK提供了列举子项的ZwQueryKey函数和ZwEnumerateKey。先看一下这两个函数的声明。
NTSTATUS
ZwQueryKey(
IN HANDLE KeyHandle,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
参数KeyHandle为注册表项的句柄。参数KeylnformationClass为查询的类别,一般选择KeyFulllnformation。参数Keylnformation为查询的数据指针。如果KeylnformationClass是KeyFulllnformation,则该指针指向一个KEY_FULL_INFORMATION的数据结构。参数 Length为数据长度。参数ResultLength为实际返回数据的长度。
如果函数成功则返回STATUS_SUCCESS,否则返回一个错误代码。
NTSTATUS
ZwEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength
);
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接