IoOpenDeviceInterfaceRegistryKey例程
IoOpenDeviceInterfaceRegistryKey例程返回一个注册表项的句柄, 用于存储有关特定设备接口实例的信息。
语法
NTSTATUS IoOpenDeviceInterfaceRegistryKey(
_In_ PUNICODE_STRING SymbolicLinkName,
_In_ ACCESS_MASK DesiredAccess,
_Out_ PHANDLE DeviceInterfaceKey
);
参数
- SymbolicLinkName [in]
指向标识设备接口实例的字符串的指针。此字符串是从以前调用 IoGetDeviceInterfaces、 IoGetDeviceInterfaceAlias或 IoRegisterDeviceInterface 中获得的. - DesiredAccess [in]
指定 ACCESS_MASK 值, 它表示调用方对键所需的访问, 如 KEY_READ、KEY_WRITE 或 KEY_ALL_ACCESS。有关每个 KEY_XXX访问权限的说明, 请参见 ZwCreateKey 。 - DeviceInterfaceKey [出]
如果调用成功, 则指向所请求的注册表项的返回句柄的指针。
返回值
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。
要求
Target platform | Universal |
---|---|
Version | Available starting with Windows 2000. |
Header | Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (see Remarks section) |
DDI compliance rules | PowerIrpDDis, HwStorPortProhibitedDDIs |
另请参阅
ACCESS_MASK
IoGetDeviceInterfaces
IoGetDeviceInterfaceAlias
IoRegisterDeviceInterface
ZwClose