Доступ OpenFileMapping запрещен в некоторых exes

У меня есть программа, которая записывает переменную, используя

CreateFileMapping (INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE , 0, sizeof(data), "Local\\testtest"); 

И тогда у меня есть dll, загружаемый в плагин firefox-container.exe (работающий как локально зарегистрированный на пользователе), который вызывает

 OpenFileMapping(FILE_MAP_READ, FALSE, "Local\\testtest"); 

И это прекрасно работает. Однако, когда я пытаюсь сделать то же самое с моей dll, загруженной в iexplore.exe (также выполняется как локально зарегистрированный пользователь), я получаю значение NULL, а GetLastError возвращает (0x5) ACCESS DENIED.

Я попытался настроить привилегии процесса в DLL, чтобы добавить SE_CREATE_GLOBAL_NAME, однако это не имело никакого значения (и я не ожидал, что это произойдет, поскольку разрешение требуется только для создания глобального имени, которое я считаю, а не для локального, которое им используется) ,

Независимо от того, что я пытаюсь, с iexplore.exe он не работает с ACCESS DENIED. Единственное, что я нашел, это запустить мою программу setter как администратор и запустить iexplore.exe как администратор, а затем он сможет ее прочитать. Но я не рассматриваю это как решение, потому что я действительно хочу избежать необходимости запускать весь exe под администратором.

Кто-нибудь знает об этом?

Если безопасность не является проблемой, а просто хочет заставить ее работать, вы также можете установить для DACL сопоставления файлов значение NULL, которое затем даст полный доступ ко всем.

Ниже приведен пример.

 SetSecurityInfo(handle, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION | PROTECTED_DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL); 

Но, пожалуйста, поймите, что это не рекомендуется, если вы относитесь к безопасности.