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

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

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 如果选择KeyValueFulllnformation,它对应的查询数据结构是KEY_VALUE_FULL_INFORMATION的数据结构,深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(4)(4),typedef struct _KEY_VALUE_FULL_INFOR

如果选择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
    );

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

Tags:深度 剖析 WinPcap

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