Yig*_* Wu 0 windows winapi uac windows-vista
我的操作系统是启用了UAC的Vista,我在服务器端创建了一个全局Mutex对象,然后我的带有UI的AP想要使用具有相同名称的CreateMutex获取已在服务器中创建的Mutex对象,但该功能告诉我我不喜欢无权访问它.我该怎么做?
我认为在您的情况下,您需要通过初始化相应的安全属性明确允许对您的互斥锁进行全部访问.
尝试以这种方式创建互斥(将其视为半伪代码):
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE);
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = &sd;
CreateMutex(&sa, ...);
Run Code Online (Sandbox Code Playgroud)
顺便说一下 - 使用CreateMutex打开现有的互斥锁是好的.但是,OpenMutex允许您指定所需的访问级别.
另请注意,如果您需要一个真正的全局互斥锁 - 您必须在其名称前添加"Global \"(请参阅MSDN的"内核对象命名空间"文章)
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |