Программирование для Windows NT (том 2)

использования функции CreateNamedPipe


Приведем пример использования функции CreateNamedPipe для создания именованного канала Pipe с именем $MyPipe$, предназначенным для чтения и записи данных, работающем в блокирующем режиме и допускающем создание неограниченного количества реализаций:

HANDLE hNamedPipe;

LPSTR  lpszPipeName = "\\\\.\\pipe\\$MyPipe$";

hNamedPipe = CreateNamedPipe(

    lpszPipeName,

    PIPE_ACCESS_DUPLEX,

    PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,

    PIPE_UNLIMITED_INSTANCES,

    512, 512, 5000, NULL);

Через создаваемый канал передаются сообщения (так как указана константа PIPE_TYPE_MESSAGE). Данная реализация предназначена только для чтения (константа PIPE_READMODE_MESSAGE).

При создании канала мы указали размер буферов ввода и вывода, равный 512 байт. Время ожидания операций выбрано равным 5 секунд. Атрибуты защиты не указаны, поэтому используются значения, принятые по умолчанию.



Содержание раздела