У меня есть служба Windows, которая создает именованный канал в своей основной функции службы.Ниже приведен фрагмент кода:
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
{
DWORD status;
DWORD specificError;
m_ServiceStatus.dwServiceType = SERVICE_WIN32;
m_ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
m_ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
m_ServiceStatus.dwWin32ExitCode = 0;
m_ServiceStatus.dwServiceSpecificExitCode = 0;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
m_ServiceStatusHandle = RegisterServiceCtrlHandler("myService",
ServiceCtrlHandler);
if (m_ServiceStatusHandle == (SERVICE_STATUS_HANDLE)0)
{
return;
}
m_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
if (!SetServiceStatus (m_ServiceStatusHandle, &m_ServiceStatus))
{
}
CraeteNamedPipe();
return;
}
Функция CraeteNamedPipe
создает именованный канал \\.\pipe\1stPipe
.
Я могу успешно установить и запустить свой сервис на моем компьютере с XP.
Теперь, как я могу получить доступ к namedpipe \\.\pipe\1stPipe
с помощью другой программы.
Любой фрагмент кода или образецстатья будет полезна.