У меня есть программа, которая записывает переменную, используя
CreateFileMapping (INVALID_HANDLE_VALUE, NULL, PAGE_EXECUTE_READWRITE , 0, sizeof(data), "Local\\testtest");
И затем у меня есть dll, который загружается в plugin-container.exe firefox (работает как локально вошедший в систему пользователь), который вызывает
OpenFileMapping(FILE_MAP_READ, FALSE, "Local\\testtest");
И это прекрасно работает.Однако, когда я пытаюсь сделать то же самое с моей dll, загруженной в iexplore.exe (также работающей как локально вошедший в систему пользователь), я получаю значение NULL и GetLastError возвращает (0x5) ACCESS DENIED.процесс в dll для добавления SE_CREATE_GLOBAL_NAME, однако, это не имело никакого значения (и я не ожидал этого, поскольку разрешение требуется только для создания глобального имени, которое я считаю, а не локального, которое я использую).
Независимо от того, что я пытаюсь, с iexplore.exe происходит сбой с ACCESS DENIED.Единственный способ обойти это - запустить программу установки с правами администратора и запустить iexplore.exe с правами администратора, после чего он сможет ее прочитать.Но я не рассматриваю это как решение, потому что я действительно хочу избежать запуска всего exe под администратором.
Кто-нибудь знает способ обойти это?