WEB开发网
开发学院操作系统windows 2008 深度剖析WinPcap之(三)——所涉及的Windows驱动基... 阅读

深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(4)

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 参数KeyHandle为注册表项句柄,参数Index:为由0开始的索引,深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(4)(5),参数KeylnformationClass为子项的信息类型,参数Length为子项信息的长度,1.1.1.6 枚举子键和枚举子项类似,枚举子键

参数KeyHandle为注册表项句柄。参数Index:为由0开始的索引。参数KeylnformationClass为子项的信息类型。参数Length为子项信息的长度。参数ResultLength为返回子键信息的长度。

如果函数成功则返回STATUS_SUCCESS,否则返回一个错误代码。

ZwQueryKey的作用主要是获得某注册表项究竟有多少个子项,而ZwEnumerateKey的作用主要是针对第几个子项获取该子项的具体信息。

在使用ZwQueryKey时,可以将参数KeylnformationClass指定为KeyFulllnformation。这样参数Keylnformation就对应一个KEY_FULL_INFORMATION的数据结构,该数据结构中的SubKeys指明了项中有多少个子项。

KEY_FULL_INFORMATION数据结构的大小是变长的,所以要调用两次

ZwQueryKey。第一次获取KEY_FULL_INFORMATION数据的长度,第二次真正获取KEY_FULL_INFORMATION数据。

在使用ZwEnumerateKey时,需要将参数KeylnformationClass设置为KeyBasicInformation,这样其参数Keylnformation兢能对应KEY_B ASIC_INFORMATION的数据结构。

同理KEY_BASIC_INFORMATION也是变长的数据结构,需要两次调用ZwEnumerateKey。第一次获取KEY_BASIC_INFORMATION的长度,第二次获取KEY_BASIC_INFORMATION数据。

1.1.1.6     枚举子键

和枚举子项类似,枚举子键是通过ZwQueryKey和ZwEnumerateValueKey两个函数的配合完成的。ZwEnumerateValueKey函数的使用和ZwEnumerateKey函数的使用类似。

NTSTATUS
ZwEnumerateValueKey(
IN HANDLE  KeyHandle,
        IN ULONG  Index,
        IN KEY_VALUE_INFORMATION_CLASS  KeyValueInformationClass,
        OUT PVOID  KeyValueInformation,
        IN ULONG  Length,
        OUT PULONG  ResultLength
    );

上一页  1 2 3 4 5 6  下一页

Tags:深度 剖析 WinPcap

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接