ATLGetDacl从32位进程访问64位reg密钥

时间:2016-11-02 04:31:03

标签: c++ windows registry atl

我试图从32位进程获取64位注册表项的DACL信息。

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

这会重定向到“Machine \ Software \ Wow6432Node \ Somekey”,因为我正在运行32位进程。

我需要的是像Windows注册表功能(如RegOpenKeyEx)中可用的samDesired标志,你知道ATL是否有这样的东西以及如何将它传递给ATLGetDacl和ATLSetDacl?

感谢。

1 个答案:

答案 0 :(得分:3)

AtlGetDacl的另一个重载可以将注册表项作为参数。

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

您可以将它用于您已知道如何使用RegOpenKeyEx打开的密钥。