我正在编写一个注册表清理应用程序。 我需要删除一些安全的注册表项值,但由于它们的访问权限,我的删除操作失败。
我了解到可以使用RegSetKeySecurity方法删除注册表访问权限。
但我不确定如何正确设置SECURITY_INFORMATION和PSECURITY_DESCRIPTOR参数以将密钥的安全性设置为用户级别。
如果有人能指导我如何前进,我们将不胜感激。
答案 0 :(得分:0)
BOOL CreateMyDACL(SECURITY_ATTRIBUTES * pSA, HKEY hKey_CM_DACL)
{
TCHAR * szSD = TEXT("D:")
TEXT("(A;OICI;GA;;;WD)")
TEXT("(A;OICI;GA;;;SY)");
ConvertStringSecurityDescriptorToSecurityDescriptor(
szSD,
SDDL_REVISION_1,
&(pSA->lpSecurityDescriptor),
NULL);
RegSetKeySecurity( hKey_CM_DACL, DACL_SECURITY_INFORMATION, pSA->lpSecurityDescriptor );
}