Форум: "Основная";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];
ВнизСервис и событие Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c