IoOpenDeviceInterfaceRegistryKey 函数 (wdm.h)
IoOpenDeviceInterfaceRegistryKey 例程返回注册表项的句柄,用于存储有关特定设备接口实例的信息。
语法
NTSTATUS IoOpenDeviceInterfaceRegistryKey(
[in] PUNICODE_STRING SymbolicLinkName,
[in] ACCESS_MASK DesiredAccess,
[out] PHANDLE DeviceInterfaceRegKey
);
参数
[in] SymbolicLinkName
指向标识设备接口实例的字符串的指针。 此字符串是从以前调用 IoGetDeviceInterfaces、 IoGetDeviceInterfaceAlias 或 IoRegisterDeviceInterface 获取的。
[in] DesiredAccess
指定表示调用方对密钥(例如 KEY_READ 、KEY_WRITE或KEY_ALL_ACCESS)的访问ACCESS_MASK值。 有关每个KEY_XXX 访问权限的说明,请参阅 ZwCreateKey。
[out] DeviceInterfaceRegKey
指向返回的句柄的指针,该句柄指向请求的注册表项(如果调用成功)。
返回值
如果调用成功,IoOpenDeviceInterfaceRegistryKey 将返回STATUS_SUCCESS。 可能的错误返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
例程无法找到设备接口实例的注册表项,可能是由于 SymbolicLinkName 中的错误。 |
|
例程无法找到设备接口实例的注册表项,可能是由于 SymbolicLinkName 中的错误。 |
|
可能指示 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) |