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)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(请参阅“备注”部分)
DDI 符合性规则 HwStorPortProhibitedDIS(storport)PowerIrpDDis(wdm)

另请参阅

ACCESS_MASK

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoRegisterDeviceInterface

ZwClose