Запись данных в канал
Запись данных в открытый канал выполняется с помощью функции WriteFile, аналогично записи в обычный файл:
HANDLE hNamedPipe;
DWORD cbWritten;
char szBuf[256];
WriteFile(hNamedPipe, szBuf, strlen(szBuf) + 1,
&cbWritten, NULL);
Через первый параметр функции WriteFile передается идентификатор реализации канала. Через второй параметр передается адрес буфера, данные из которого будут записаны в канал. Размер этого буфера указывается при помощи третьего параметра. Предпоследний параметр используется для определения количества байт данных, действительно записанных в канал. И, наконец, последний параметр задан как NULL, поэтому запись будет выполняться в синхронном режиме.
Учтите, что если канал был создан для работы в блокирующем режиме, и функция WriteFile работает синхронно (без использования вывода с перекрытием), то эта функция не вернет управление до тех пор, пока данные не будут записаны в канал.