![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Alix |
|
||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 3 Всего: 23 |
Есть две программы. Просто приложение и сервис. Используют абсолютно одинаковый код для создания отображения файла. Вот он:
Если вначале открываю приложение, а потом сервис, то всё чудесно коннектится. Сервис по таймеру в лог пишет кол-во клиентов (pShared.xpcomCount). Если запустить еще одно приложение, то кол-во клиентов станет 3. Ну т.е. все работает. Закрытие в любом порядке тоже успешно. Но если вначале запускаю сервис, то от приложение, то получаю ERROR_ACCESS_DENIED после CreateFileMapping. В чем может быть дело? Ведь код одинаков... (сервис был создан как SERVICE_WIN32_OWN_PROCESS) Проверка по таймеру в приложении такая:
При необходимости выложу полные коды, там просто чистить надо будет. Это сообщение отредактировал(а) Alix - 20.9.2007, 17:12 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||
|
|||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
тебе надо второй параметр прописать в CreateFileMapping, а именно параметры безопасности (LPSECURITY_ATTRIBUTES)...
что прописать - точно не скажу, может кто еще осведомленный подскажет Добавлено @ 18:00 p.s. гдето была (на королевстве чтоль) очень хорошая статейка про DACL и проч Это сообщение отредактировал(а) MetalFan - 20.9.2007, 18:20 -------------------- There are always someone smarter than you... |
|||
|
||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 3 Всего: 23 |
А зачем? Если первое приложение запускается или даже два приложения между собой, то ведь все работает. Из MSDN:
Загвоздка может быть только в выделенном как я понимаю. Тогда я немного растерян, я не знал, что по-умолчанию у сервисов есть какие-то секьюрные особенности. Где про это можно почиать? Кстати в этом может что-то и есть, ведь сервис запускается под системной учетной записью. Это сообщение отредактировал(а) Alix - 20.9.2007, 18:20 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
сервис, AFAIK, работает под системной учетной записью... может из этого ноги растут
-------------------- There are always someone smarter than you... |
|||
|
||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 3 Всего: 23 |
Возможно кому-то будет интересно, начало кода функции prepareShareMemory изменилось на такой:
Это сообщение отредактировал(а) Alix - 21.9.2007, 11:45 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |