You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenMutex中0x10000000对应的访问权限是什么?

关于OpenMutex中dwDesiredAccess=0x10000000的权限疑问

我在一段代码中看到如下调用:

HANDLE handle = OpenMutex(0x10000000, false, L"NameOfMutexObject");

该调用返回了有效的句柄(返回值不为NULL),看起来执行成功。但我查阅同步对象安全与访问权限相关文档时,找不到0x10000000这个位掩码对应的权限说明。

因此我的问题是:当dwDesiredAccess = 0x10000000时,会授予哪些访问权限?

我还编写了一个最小示例进行测试:

void testing_mutex() {
    HANDLE hMutex;

    hMutex = CreateMutex(
        NULL,                        // 默认安全描述符
        FALSE,                       // 互斥量不被当前进程拥有
        TEXT("NameOfMutexObject")
    );

    HANDLE mhandle = OpenMutex(0x10000000, false, L"NameOfMutexObject");
    if (mhandle == NULL || mhandle == 0)
    {
        printf("OpenMutex error: %d\n", GetLastError());
        return;
    }
    printf("MY MUTEX HANDLE: %d\n", mhandle);
}

int main(void)
{
    testing_mutex();
}

0x10000000对应的是GENERIC_ALL权限,这是Windows API中的通用权限掩码,代表获取目标对象的所有可能访问权限。

对于互斥量对象而言,GENERIC_ALL会映射到该对象的全部权限集合,包括但不限于:

  • SYNCHRONIZE权限:允许进程等待或释放互斥量
  • MUTEX_ALL_ACCESS包含的所有特定权限:如修改对象权限、查询对象信息等

你测试代码中调用成功,是因为CreateMutex使用默认安全描述符时,当前进程本身就拥有对该互斥量的完全访问权限,因此使用GENERIC_ALL掩码可以顺利打开并获得具备全部权限的句柄。

内容的提问来源于stack exchange,提问作者Eisen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:33:35