2016-11-02 7 views
0

64ビットレジストリキーのDACL情報を32ビットプロセスから取得しようとしています。32ビットプロセスから64ビットregキーにアクセスするATLGetDacl

AtlGetDacl("Machine\Software\Somekey", SE_REGISTRY_KEY, &dacl) 

私は32ビットプロセスを実行しているので、これは "Machine \ Software \ Wow6432Node \ Somekey"にリダイレクトされます。

私が必要とするのは、Windowsレジストリ関数(RegOpenKeyExなど)で使用できるsamDesiredフラグのようなものですが、ATLにこのようなことがあり、それをATLGetDaclとATLSetDaclに渡すことができますか?

ありがとうございました。

答えて

3

もう1つのオーバーロードAtlGetDaclは、レジストリキーを引数として取ることができます。

inline bool AtlGetDacl(
    _In_ HANDLE hObject, 
    _In_ SE_OBJECT_TYPE ObjectType, 
    _Inout_ CDacl *pDacl) throw(...) 

RegOpenKeyExで開く方法を知っているキーに使用できます。

+0

@ HansPassant:はい、それは私が理解したものです。そして、RegOpenKeyExを使ってRegOpenKeyExを実行する方法を知っているので、これを行う方法です:別のキーを開いて、別のAtlGetDaclオーバーロードに渡して、この方法でリダイレクトをバイパスできます –

+0

ああ、うまくいくでしょう。素晴らしい、私はそれを試してみましょう、ありがとうたくさん。 – Shahab78

関連する問題