Помогите разобраться с проблемой. У меня служба не хочет сотрудничать с процессами.
/// СЕРВЕРНАЯ ЧАСТЬ (в службе) ////////
событие взводится когда клиент прочитает содержимое
UserFekEvent = OpenEvent(SYNCHRONIZE,FALSE,USER_FEK_EVENT);
создаю канал
hPipe = CreateNamedPipe(FEK_PIPE_NAME,
PIPE_ACCESS_OUTBOUND,
PIPE_TYPE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
sizeof(DWORD),
sizeof(DWORD),
100,
NULL);
ConnectNamedPipe( hPipe, NULL );
..
пишу в него
WriteFile(hPipe,&SendBuf,sizeof(DWORD),&w,NULL);
...
жду когда клиент прочитает ...
WaitForSingleObject(UserFekEvent,INFINITE);
и разрываю соединение....
DisconnectNamedPipe( hPipe, NULL );
////// КЛИЕНТСКАЯ ЧАСТЬ //////////
hEvent = CreateEvent(NULL,TRUE,FALSE,USER_FEK_EVENT);
hPipe = CreateFile(FEK_PIPE_NAME,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
.. читаю из канала
ReadFile(hPipe,&Buf,sizeof(DWORD),&w,NULL);
.. закрываю
CloseHandle(hPipe);
printf("\nFEK %u",Buf);
.. взвожу событие канал прочитан
SetEvent(hEvent);
Проблема в том, что при первом запуске все работает нормально, но при последующих (до перезагрузки службы) выдается ошибка при открытии канала на клиенте ERROR_PIPE_BUSY.