您的位置:首页 > 运维架构

命名对象继承2-验证Open*命名对象安全属性的传递

2013-12-17 22:12 316 查看
接上一篇

这次是验证Open*(本文使用OpenMutex函数)的命名对象在继承中安全属性的传递

SECURITY_ATTRIBUTES sa; //设置句柄安全性
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
HANDLE hMutex1 = CreateMutex(&sa, FALSE, TEXT("JeffObj")); //创建对象句柄1

HANDLE hMutex2 = OpenMutex(MUTEX_ALL_ACCESS, FALSE, TEXT("JeffObj")); //继承一个对象句柄2

DWORD dwFlags1;
GetHandleInformation(hMutex1, &dwFlags1); //验证对象句柄1的继承性
BOOL fHandleIsInheritable1 = (0 != (dwFlags1 & HANDLE_FLAG_INHERIT));
DWORD dwFlags2;
GetHandleInformation(hMutex2, &dwFlags2); //验证对象句柄1的继承性,判断是否继承安全性成功
BOOL fHandleIsInheritable2 = (0 != (dwFlags2 & HANDLE_FLAG_INHERIT));
CloseHandle(hMutex1);
CloseHandle(hMutex2);




可以看到dwFlags1和dwFlags2的值不同,所以继承对象句柄中,安全性继承失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: