IoOpenDeviceRegistryKey 関数 (wdm.h)

IoOpenDeviceRegistryKey ルーチンは、特定のデバイス インスタンスのレジストリ状態の場所にハンドルを返します。

構文

NTSTATUS IoOpenDeviceRegistryKey(
  [in]  PDEVICE_OBJECT DeviceObject,
  [in]  ULONG          DevInstKeyType,
  [in]  ACCESS_MASK    DesiredAccess,
  [out] PHANDLE        DeviceRegKey
);

パラメーター

[in] DeviceObject

レジストリ状態の場所を開くデバイス インスタンスの 物理デバイス オブジェクト (PDO) へのポインター。

[in] DevInstKeyType

デバイス固有のハードウェア キーとドライバー固有のソフトウェア キーのどちらを開くかを示すフラグを指定します。 フラグは、キーが現在のハードウェア プロファイルに対して相対的であるかどうかを示します。 ハードウェア キーとソフトウェア キーの詳細については、「 ドライバーのレジストリ キーの概要」を参照してください。

フラグは次のように定義されます。

PLUGPLAY_REGKEY_DEVICE

デバイスに関する情報を含むデバイス固有のレジストリ状態の場所であるデバイスのハードウェア キーを開きます。 このフラグは、PLUGPLAY_REGKEY_DRIVERで指定できません。

PLUGPLAY_REGKEY_DRIVER

ドライバー固有の情報を格納するためのデバイス固有のレジストリ状態の場所であるデバイスのソフトウェア キーを開きます。 このフラグは、PLUGPLAY_REGKEY_DEVICEで指定できません。

PLUGPLAY_REGKEY_CURRENT_HWPROFILE

ハードウェア プロファイルは非推奨であり、状態はハードウェア プロファイルに対して相対的に格納しないでください。

デバイスまたはドライバー情報の現在のハードウェア プロファイルに関連するキーを開きます。 これにより、ドライバーはハードウェア プロファイル固有の構成情報にアクセスできます。 呼び出し元は、このフラグを使用してPLUGPLAY_REGKEY_DEVICEまたはPLUGPLAY_REGKEY_DRIVERを指定する必要があります。

[in] DesiredAccess

呼び出し 元がキー に対して必要とするアクセスを表すACCESS_MASK値を指定します。 各KEY_XXX アクセス権の説明については、ZwCreateKey ルーチンを参照してください。

[out] DeviceRegKey

呼び出し元によって割り当てられたバッファーへのポインター。正常に返されると、要求されたレジストリ状態の場所へのハンドルが含まれます。

戻り値

IoOpenDeviceRegistryKey は 、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラーの戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_PARAMETER 呼び出し元が 無効な DevInstKeyType フラグのセットを指定したか、有効な PDO ではない DeviceObject を 指定したことを示している可能性があります。

注釈

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

このルーチンによって開かれるレジストリ キーは、不揮発性です。

ユーザー モードセットアップ アプリケーションは、setupDiOpenDevRegKey や SetupDiCreateDevRegKey などのCM_Open_DevNode_Keyまたはデバイス情報関数を使用して、これらのレジストリ キーアクセスできます。

ドライバー パッケージのインストール時にこれらのレジストリ状態の場所の状態を事前に設定するには、INF ファイルで INF AddReg ディレクティブ を使用します。

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

要件

要件
対象プラットフォーム ユニバーサル
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

ZwCreateKey

ZwClose

デバイス ノードとデバイス スタック