У меня есть два приложения UWP, которые оба используют некоторую общую память.
Я пытаюсь использовать мьютекс для управления доступом к этой общей памяти, но я получаю ошибку ERROR_ACCESS_DENIED
.
// UWP app 1
mutex = CreateMutex(
nullptr, // default security attributes
FALSE, // initially not owned
TEXT("SweetMutex")); // mutex name, so can be accessed by other process
// UWP app 1 => Works fine
mutex = OpenMutexW(
SYNCHRONIZE, // dwDesiredAccess
false, // bInheritHandle
TEXT("SweetMutex")); // name
// UWP app 2 => ERROR_ACCESS_DENIED
mutex = OpenMutexW(
SYNCHRONIZE,
false,
TEXT("AppContainerNamedObjects\\S-1-15-2-3433162674-898635200-3932922341-4094065500-307713946-2435835884-1657823385\\SweetMutex"));
Может быть, мне нужно добавить определенный c дескриптор безопасности к CreateMutex()
вместо передачи nullptr
? Я читал о дескрипторах безопасности и сумел запутаться еще больше:)
Есть идеи?