IoOpenDeviceInterfaceRegistryKey 函数 (wdm.h)

IoOpenDeviceInterfaceRegistryKey 例程返回注册表项的句柄,用于存储有关特定设备接口实例的信息。

语法

NTSTATUS IoOpenDeviceInterfaceRegistryKey(
  [in]  PUNICODE_STRING SymbolicLinkName,
  [in]  ACCESS_MASK     DesiredAccess,
  [out] PHANDLE         DeviceInterfaceRegKey
);

参数

[in] SymbolicLinkName

指向标识设备接口实例的字符串的指针。 此字符串是从以前调用 IoGetDeviceInterfacesIoGetDeviceInterfaceAliasIoRegisterDeviceInterface 获取的。

[in] DesiredAccess

指定表示调用方对密钥(例如 KEY_READ 、KEY_WRITE或KEY_ALL_ACCESS)的访问ACCESS_MASK值。 有关每个KEY_XXX 访问权限的说明,请参阅 ZwCreateKey

[out] DeviceInterfaceRegKey

指向返回的句柄的指针,该句柄指向请求的注册表项(如果调用成功)。

返回值

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

返回代码 说明
STATUS_OBJECT_NAME_NOT_FOUND
例程无法找到设备接口实例的注册表项,可能是由于 SymbolicLinkName 中的错误。
STATUS_OBJECT_PATH_NOT_FOUND
例程无法找到设备接口实例的注册表项,可能是由于 SymbolicLinkName 中的错误。
STATUS_INVALID_PARAMETER
可能指示 SymbolicLinkName 中存在错误。

注解

IoOpenDeviceInterfaceRegistryKey由 SymbolicLinkName 指定的设备接口实例打开注册表项的非易失性子项。 驱动程序可以将信息存储在特定于此设备接口实例的此子项中,例如相机的默认分辨率。 用户模式应用程序可以使用 SetupDiXxx 例程访问此子项。

当不再需要访问时,驱动程序必须调用 ZwClose 以关闭从此例程返回的句柄。

IoOpenDeviceInterfaceRegistryKey 的调用方必须在系统线程上下文中的 IRQL = PASSIVE_LEVEL 运行。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅备注部分)
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

ACCESS_MASK

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoRegisterDeviceInterface

ZwClose