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

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

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: 1.1.1.2 打开注册表DDK提供了内核函数ZwOpenKey打开一个已存在的注册表项,如果ZwOpenKey指定的项不存在,深度剖析WinPcap之(三)——所涉及的Windows驱动基础知识(4)(2),就不会创建这个项,而是返回一个错误状态,NTSTATUSZwClose(IN HAND

1.1.1.2     打开注册表

DDK提供了内核函数ZwOpenKey打开一个已存在的注册表项。如果ZwOpenKey指定的项不存在,就不会创建这个项,而是返回一个错误状态。该函数的声明如下:

NTSTATUS
ZwOpenKey(
           OUT PHANDLE KeyHandle,
           IN ACCESS_MASK DesiredAccess,
           IN POBJECT_ATTRIBUTES ObjectAttributes
    );

参数KeyHandle为返回被打开的句柄。参数DesiredAccess为打开的权限,一般设为KEY_ALL_ACCESS。参数ObjectAttri110utes是OBJECT_ATTRIBUTES数据结构,指示打开的状态。

如果打开成功函数ZwOpenKey返回STATUS_SUCCESS,否则返回一个错误代码,可能为STATUS_INVALID_HANDLE或STATUS_ACCESS_DENIED。

1.1.1.3     关闭注册表

打开的注册表,如果不在使用需要采用ZwClose函数关闭它,函数原型如下。

NTSTATUS
 ZwClose(
IN HANDLE  Handle
);

参数Handle为所要关闭的注册表句柄。

1.1.1.4     查询注册表

驱动程序中有时需要对注册表的项进行查询,从而获取注册表的键值aDDK提供的ZwQueryValueKey函数可以完成这个任务,其声明如下:

NTSTATUS
ZwQueryValueKey(
           IN HANDLE KeyHandle,
           IN PUNICODE_STRING ValueName,
           IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
           OUT PVOID KeyValueInformation,
          IN ULONG Length,
           OUT PULONG ResultLength
);

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

Tags:深度 剖析 WinPcap

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