IoOpenDeviceRegistryKey例程

IoOpenDeviceRegistryKey例程

  IoOpenDeviceRegistryKey例程返回特定设备实例的特定于设备或特定于驱动程序的注册表项的句柄。

语法

 NTSTATUS IoOpenDeviceRegistryKey(
  _In_  PDEVICE_OBJECT DeviceObject,
  _In_  ULONG          DevInstKeyType,
  _In_  ACCESS_MASK    DesiredAccess,
  _Out_ PHANDLE        DevInstRegKey
);

参数

  • DeviceObject [in]
      指向要打开其注册表项的设备实例的 PDO 的指针。
  • DevInstKeyType [in]
      指定指示是否打开特定于设备的硬件键或特定于驱动程序的软件键的标志。标志还指示该键是否与当前的硬件配置文件相关。有关硬件和软件键的详细信息, 请参阅驱动程序的注册表项.
    这些标志的定义如下:
    • PLUGPLAY_REGKEY_DEVICE
        【HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ZHANGFANDEVICE\0000\Device Parameters】
        在设备的硬件键下打开设备参数子项。该键位于由DeviceObject指定的设备实例的键下。无法使用 PLUGPLAY_REGKEY_DRIVER 指定此标志。
    • PLUGPLAY_REGKEY_DRIVER
        【HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{EF2962F0-0D55-4BFF-B8AA-2221EE8A79B0}\0000 】
        打开软件键以存储驱动程序特定的信息。无法使用 PLUGPLAY_REGKEY_DEVICE 指定此标志。
    • PLUGPLAY_REGKEY_CURRENT_HWPROFILE
        打开相对于当前设备或驱动程序信息的硬件配置文件的键。这使驱动程序可以访问特定于硬件配置文件的配置信息。调用方必须使用此标志指定 PLUGPLAY_REGKEY_DEVICE 或PLUGPLAY_REGKEY_DRIVER。
  • DesiredAccess [in]
      指定 ACCESS_MASK 值, 它表示调用方需要该键的访问权限。有关每个 KEY_XXX访问权限的说明, 请参见 ZwCreateKey 例程。
  • DevInstRegKey [out]
      指向调用方分配的缓冲区的指针, 它在成功返回时包含请求的注册表项的句柄。
      

返回值

  IoOpenDeviceRegistryKey 如果调用成功, 则返回 STATUS_SUCCESS。可能的错误返回值包括以下内容.

返回代码描述
STATUS_INVALID_PARAMETER可能指示调用方指定了一组非法的DevInstKeyType标志。
STATUS_INVALID_DEVICE_REQUEST可能指示DeviceObject不是有效的 PDO。

摘要

  当不再需要访问时, 驱动程序必须调用 ZwClose 以关闭从该例程返回的句柄。
此例程打开的注册表项是非易失的。
  用户模式安装应用程序 (如 类安装程序) 可以使用设备安装功能 (如 SetupDiOpenDevRegKey ) 访问这些注册表项.
  要创建注册表项, 请在安装应用程序中使用 inf AddReg 指令 在 INF 文件中或使用 SetupDiCreateDevRegKey 。
  IoOpenDeviceRegistryKey的调用方必须在系统线程的上下文中运行 IRQL = PASSIVE_LEVEL。

要求

Target platformUniversal
VersionAvailable starting with Windows 2000.
HeaderWdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)
LibraryNtosKrnl.lib
DLLNtosKrnl.exe
IRQLPASSIVE_LEVEL (see Remarks section)
DDI compliance rulesPowerIrpDDis, HwStorPortProhibitedDDIs

另请参阅

ACCESS_MASK
ZwClose

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值