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

Функция GetNamedPipeInfo


Еще одна функция, позволяющая получить информацию об именованном канале по его идентификатору, называется GetNamedPipeInfo:

BOOL GetNamedPipeInfo(

  HANDLE  hNamedPipe,      // идентификатор канала

  LPDWORD lpFlags,         // адрес флагов типа канала

  LPDWORD lpOutBufferSize, // адрес размера выходного буфера

  LPDWORD lpInBufferSize,  // адрес размера входного буфера

  LPDWORD lpMaxInstances); // адрес максимального количества

                           // реализаций канала

Параметр hNamedPipe задает идентфикатор именованного канала Pipe, для которого требуется получить информацию.

Через параметр lpFlags функции GetNamedPipeInfo необходимо передать адрес переменной типа DWORD или NULL, если флаги определять не требуется. Ниже мы привели возможные значения флагов:

Флаг



Описание

PIPE_CLIENT_END

Идентификатор ссылается на клиентскую часть канала

PIPE_SERVER_END

Идентификатор ссылается на серверную часть канала

PIPE_TYPE_MESSAGE

Канал работает в режиме передачи сообщений

В переменные, адреса которых задаются через параметры lpOutBufferSize и lpInBufferSize, функция GetNamedPipeInfo заносит размеры входного и выходного буфера, соответственно. Если эта информация не нужна, передайте через параметры lpOutBufferSize и lpInBufferSize значение NULL.

И, наконец, через параметр lpMaxInstances передается адрес переменной, в которую будет записано максимальное значение реализаций, которое можно создать для данного канала. Если после вызова функции GetNamedPipeInfo в этой переменной записано значение PIPE_UNLIMITED_INSTANCES, количество реализаций ограничивается только свободными системными ресурсами.

В случае успешного завершения функция GetNamedPipeInfo возвращает значение TRUE, а при ошибке - FALSE. Код ошибки можно получить, вызвав функцию GetLastError.



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