About the Vista Mutex Object
1 answer
I think in your case, you need to explicitly allow all access to your mutex by initializing the appropriate security attributes.
Try creating a mutex this way (think of it as semi-pseudocode):
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, ...);
And by the way, it's good to use CreateMutex to open an existing mutex . But OpenMutex allows you to specify the required access level.
Also note that if you want a truly global mutex - you will need to prefix its name with "Global" (see the MSDN article "Nuclear Namespaces")
+5
a source to share