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) |