Windows エグゼクティブは、レジストリ キーを、オブジェクト マネージャーによって管理されるエグゼクティブ オブジェクトとして表します。 (オブジェクト マネージャーの詳細については、「 オブジェクト管理」を参照してください。特に、すべてのキーにオブジェクト名があり、キーのハンドルを開くことができます。
ユーザー モード アプリケーションは、HKEY_LOCAL_MACHINEやHKEY_CURRENT_USERなどのグローバル ハンドルに関連するアクセス キーにアクセスします。 ただし、これらのハンドルはカーネル モード コードでは使用できません。 代わりに、キーをオブジェクト名で参照します。 すべてのレジストリ キーのルートは \Registry オブジェクトです。 グローバル ハンドルは、次の表に示すように、 \Registry オブジェクトの子孫に対応します。
| ユーザー モード ハンドル | 対応するオブジェクト名 |
|---|---|
HKEY_LOCAL_MACHINE |
\Registry\Machine |
HKEY_USERS |
\Registry\User |
HKEY_CLASSES_ROOT |
カーネル モードに相当するものがない |
HKEY_CURRENT_USER |
単純なカーネル モードに相当するものはありませんが、「レジストリ Run-Time ライブラリ ルーチン」を参照してください |
ドライバーは、次の手順を実行してレジストリ キー オブジェクトを操作できます。
レジストリ キー オブジェクトへのハンドルを開きます。 詳細については、「 Registry-Key オブジェクトへのハンドルを開く」を参照してください。
適切な ZwXxxキー ルーチンを呼び出して、目的の操作を実行します。 その方法については、「 Registry-Key オブジェクトへのハンドルの使用」を参照してください。
ZwClose を呼び出してハンドルを閉じます。