gpt4 book ai didi

windows - 尝试从用户模式进程创建全局文件映射对象失败

转载 作者:可可西里 更新时间:2023-11-01 09:48:07 26 4
gpt4 key购买 nike

我有一个无需提升即可运行的 Windows 应用程序。我需要为内存数组创建一个文件映射对象,以便在应用程序的所有运行实例之间共享(请注意,其中一些实例可能在不同的登录 session 中运行。)

我调用 CreateFileMapping创建它的 API,具有全局名称,即 Global\sharedname,使用安全描述符为 everyone 提供 all 访问权限,但该 API 失败错误代码 5,或 ERROR_ACCESS_DENIED

然后我开始阅读文档,发现我的进程需要 SeCreateGlobalPrivilege 权限。但是当我尝试分配该特权时 AdjustTokenPrivileges返回错误代码 ERROR_NOT_ALL_ASSIGNED,我卡住了....

那么这里有什么诀窍,那个该死的 MS 要我们怎么做???

附言。我之前可以创建一个全局命名的互斥体(用于同步访问共享内存),具有相同的all access for everyone 安全描述符和 Global\sharedmutex 名称,没有问题。

最佳答案

只有管理员和在 session 0 中运行的服务才能获得在 Global 命名空间中创建文件映射所需的 SeCreateGlobalPrivilege 权限。假设您不想将代码重新写入服务,则必须生成一个单独的提升进程来创建文件映射。

关于windows - 尝试从用户模式进程创建全局文件映射对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15038272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com