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

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