我有一个无需提升即可运行的 Windows 应用程序。我需要为要在应用程序的所有运行实例之间共享的内存数组创建一个文件映射对象(请注意,其中一些实例可能在不同的登录会话中运行。)
我使用全局名称调用CreateFileMapping API 来创建它,即Global\sharedname
,使用提供all
访问权限everyone
但该 API 失败并出现错误代码 5 或ERROR_ACCESS_DENIED
.
然后我开始阅读文档,发现我的进程需要SeCreateGlobalPrivilege
特权。但是当我尝试分配该权限时,AdjustTokenPrivileges返回错误代码ERROR_NOT_ALL_ASSIGNED
,我被卡住了......
那么这里的诀窍是什么,那个该死的MS要我们怎么做???
PS。我以前可以毫无问题地创建一个具有相同all access for everyone
安全描述符和名称的全局命名互斥锁(用于同步访问共享内存) 。Global\sharedmutex