Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.16;
Скачать: CL | DM;

Вниз

Сервис и событие   Найти похожие ветки 

 
race1   (2007-08-22 11:57) [0]

Есть сервис и обычная программа (П), они общаются через mmf, а что бы узнать что данные в mmf обновились они сигнализируют друг дружке событиями. И сервис и П успешно читают и записывают в mmf.

Проблема: если сервис запускается под п-м system, П не может открыть созданное сервисом событие - "Отказано в доступе". Если запустить сервис под тем же п-м, что и П, всё работает.

Как сделать, что бы П могла открыть событие, созданное сервисом, запущенным под п-м system?

PS. Используется CreateEvent.


 
Сергей М. ©   (2007-08-22 12:01) [1]


> они общаются через mmf


> игнализируют друг дружке событиями


И стоило ли так усложнять логику, если очевидное решение - NamedPipes ?


 
race1   (2007-08-22 12:03) [2]

Использую что знаю :) Про другие способы даже не подумал :(


 
Сергей М. ©   (2007-08-22 12:06) [3]


> Про другие способы даже не подумал


Печально.

Ну что ж, события так события..

Про назначение 1-го параметра ф-ции CreateEvent ты тоже не подумал ?


 
umbra ©   (2007-08-22 12:09) [4]


> Проблема: если сервис запускается под п-м system, П не может
> открыть созданное сервисом событие - "Отказано в доступе".
>

надо заполнять поле lpSecurityDescriptor структуры lpEventAttributes


 
Сергей М. ©   (2007-08-22 12:12) [5]


> race1   (22.08.07 12:03) [2]


Кстати, и с пайпами ты получил бы теми же граблями - там тоже секьюрити-механизм используется.

Но в случае с пайпами отпадает необходимость тех самых ивентов.


 
race1   (2007-08-22 12:17) [6]

Pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpEventAttributes is NULL, the handle cannot be inherited.

У меня нет дочерних процессов, поэтому первый аргумент всегда nil...


 
Сергей М. ©   (2007-08-22 12:22) [7]

lpSecurityDescriptor

Points to a security descriptor for the object that controls the sharing of it.


 
race1   (2007-08-22 12:25) [8]

>Сергей М.
Уже увидел :)


 
race1   (2007-08-22 13:19) [9]

http://delphikingdom.ru/asp/viewitem.asp?catalogid=1322&mode=print

 // Разрешаем полный доступ всем - делаем DACL = nil
 InitializeSecurityDescriptor(@FSecurityDesc, SECURITY_DESCRIPTOR_REVISION);
 SetSecurityDescriptorDacl(@FSecurityDesc, TRUE, nil, FALSE);

 FSecurityAttr.nLength := SizeOf(FSecurityAttr);
 FSecurityAttr.lpSecurityDescriptor := @FSecurityDesc;
 FSecurityAttr.bInheritHandle := FALSE;


Всем спасибо, всё работает :)


 
имя   (2007-09-25 06:42) [10]

Удалено модератором


 
имя   (2007-09-25 06:42) [11]

Удалено модератором


 
имя   (2007-09-25 06:42) [12]

Удалено модератором


 
Eraser ©   (2007-09-25 10:51) [13]


> race1   (22.08.07 13:19) [9]

смотри чтобы локального бэкдора не вышло )



Страницы: 1 вся ветка

Текущий архив: 2007.12.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
15-1195145218
Сусл
2007-11-15 19:46
2007.12.16
Как определить, кто препятствует отключению USB-HDD


6-1175878531
redlord
2007-04-06 20:55
2007.12.16
саморекурсия процедуры ClientSocket1Read


2-1195547767
DDDeN
2007-11-20 11:36
2007.12.16
Вывод целых чисел в определенном формате


1-1190091044
Kolan
2007-09-18 08:50
2007.12.16
Использовать или нет объекты спецификаций?


1-1190610573
ggg
2007-09-24 09:09
2007.12.16
Выделение в ComboBoxEx