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を返します。 エラーの戻り値として考えられるのは、次のとおりです。

リターン コード 説明
STATUS_OBJECT_NAME_NOT_FOUND
シンボリック リンク名のエラーが原因で、ルーチンがデバイス インターフェイス インスタンスのレジストリ キーを見つけることができませんでした。
STATUS_OBJECT_PATH_NOT_FOUND
シンボリック リンク名のエラーが原因で、ルーチンがデバイス インターフェイス インスタンスのレジストリ キーを見つけることができませんでした。
STATUS_INVALID_PARAMETER
シンボリック リンク名のエラーを示している可能性があります。

注釈

IoOpenDeviceInterfaceRegistryKey は、 SymbolicLinkName で指定されたデバイス インターフェイス インスタンスのレジストリ キーの非揮発性サブキーを開きます。 ドライバーは、カメラの既定の解像度など、デバイス インターフェイスのこのインスタンスに固有の情報をこのサブキーに格納できます。 ユーザー モード アプリケーションは、 SetupDiXxx ルーチンを使用してこのサブキーにアクセスできます。

アクセスが不要になった場合、ドライバーは ZwClose を呼び出して、このルーチンから返されたハンドルを閉じる必要があります。

IoOpenDeviceInterfaceRegistryKey の呼び出し元は、システム スレッドのコンテキストで IRQL = PASSIVE_LEVELで実行されている必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

ACCESS_MASK

IoGetDeviceInterfaceAlias

IoGetDeviceInterfaces

IoRegisterDeviceInterface

ZwClose