Доступ к HANDLE в Win2000
От: ServerMouse Беларусь  
Дата: 26.10.01 06:56
Оценка:
Нужно мне синхронизировать апликейшн с сервисом под 2000. Делаю примерно так:
//___ Service ___
PrEvent=CreateEvent(NULL,false,false,"Global\\PrEvent");
//_______ Application ______
PrEvent=OpenEvent(SYNCHRONIZE,TRUE,"Global\\PrEvent");

В итоге под админом програмуля работает, а под PowerUser апликейшн не может открыть эвент.

Люди, как правильно создать эвент в сервисе? Как ему нужный SECURITY_DESCRIPTOR прописать? Как вообще получить этот SECURITY_DESCRIPTOR?

И вообще где можно почитать (online) о таких вещах?


25.04.07 06:59: Перенесено модератором из 'MFC' — Odi$$ey
Если человек программист, то это надолго.
Доступ к HANDLE любому пользователю
От: Alex Fedotov США  
Дата: 26.10.01 07:28
Оценка: 9 (2)
#Имя: FAQ.winapi.global.handle
Здравствуйте ServerMouse, Вы писали:

SM>Нужно мне синхронизировать апликейшн с сервисом под 2000. Делаю примерно так:

SM>//___ Service ___
SM>PrEvent=CreateEvent(NULL,false,false,"Global\\PrEvent");
SM>//_______ Application ______
SM>PrEvent=OpenEvent(SYNCHRONIZE,TRUE,"Global\\PrEvent");

SM>В итоге под админом програмуля работает, а под PowerUser апликейшн не может открыть эвент.

SM>Люди, как правильно создать эвент в сервисе? Как ему нужный SECURITY_DESCRIPTOR прописать? Как вообще получить этот SECURITY_DESCRIPTOR?

Если хочешь, чтобы любой пользователь мог открыть это событие, надо при создании указать ему SECURITY_DESCRIPTOR with NULL DACL:

SECURITY_DESCRIPTOR SecDesc;
SECURITY_ATTRIBUTES sa;

InitializeSecurityDescriptor(&SecDesc, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&SecDesc, TRUE, NULL, FALSE);

sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = &SecDesc;
sa.bInheritHandle = FALSE;

PrEvent=CreateEvent(&sa,false,false,"Global\\PrEvent");


Если не хочешь открывать доступ всем к этому событию, то надо более тонко настраивать DACL.

SM>И вообще где можно почитать (online) о таких вещах?


http://msdn.microsoft.com/
-- Alex Fedotov
Re: Доступ к HANDLE в Win2000
От: ServerMouse Беларусь  
Дата: 26.10.01 07:48
Оценка:
>>И вообще где можно почитать (online) о таких вещах?

>http://msdn.microsoft.com/


Это конечно хорошо, но у меня и MSDN есть. Вот только написано там как-то мутно, непонятно, да ещё и по английски. Просто я впервые столкнулся с подобной проблемой и ничего об этом не знаю....
Если человек программист, то это надолго.
Re[2]: Доступ к HANDLE в Win2000
От: ServerMouse Беларусь  
Дата: 26.10.01 09:50
Оценка:
Спасибо, всё работает.
Если человек программист, то это надолго.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.