Как разделить именованный мьютекс между двумя приложениями UWP? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть два приложения 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? Я читал о дескрипторах безопасности и сумел запутаться еще больше:)

Есть идеи?

...