I am using a shared memory map for inter-process communications. This map needs to be visible between sessions, so I am attempting to create it in the global namespace. I know that the running users needs SeCreateGlobalPrivilege in order for this to work.
I have edited the local security policy (I'm not on a domain) to give my user to the "Create Global Objects" privilege, but when I run the application this privilege is not in the access token. If I run as administrator I do get the privilege.
What am I missing? Why don't I get this privilege?
AdjustTokenPrivileges() to enable the privilege for the calling thread before calling
Enabling and Disabling Privileges in C++
If you're logged in as an adminitrator, UAC will filter the privilege unless you Run As Admin.
If you're logged in as an ordinary user you'll have the privilege all the time (if you've granted it from Local Security Policy)