0

CmRegisterCallbackExを介してレジストリルーチンのコールバックを登録するカーネルドライバーを作成しています。キーのフルパスを取得し、DbgPrintを介して印刷したいと思います。コールバックでは、KeyNameInformationフラグを指定したZwQueryKeyを使用してキーポインターを正常にクエリしましたが、KEY_NAME_INFORMATION構造体のドキュメントでは次のように読みました。

WindowsVista以降のバージョンのWindowsオペレーティングシステムで使用できます。

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553381(v=vs.85).aspx

では、Windows XPのカーネルで完全なレジストリパスを取得する方法はありますか?SysInternalsツールにはすでにこの機能があり、xpで正常に動作するため、それが可能であることはわかっています。

ありがとう

アップデート


XP SP2でKeyNameInformationフラグを使用してキーのフルパスを取得しようとしました(MSDNで述べられているように、このフラグはXPではサポートされていません。上記のリンクを参照してください)。MSDNがこのフラグがサポートされていないと述べている理由を知っている人はいますか?それは単純なエラーですか、それとも私は何かを誤解しましたか?

ありがとう。

4

1 に答える 1

1

KeyNameInformationのサポートがパッチ/インラインで追加された可能性は十分にあります。問題は、XPSP0で何をするのかということです。

ObReferenceObjectByHandle()を使用してキーハンドルからKEYオブジェクトを取得し、それに続いてObQueryObjectName()を使用することを検討することをお勧めします。

于 2012-04-07T23:35:33.700 に答える