Поделиться через


структура PROTOCOL_INFOA (nspapi.h)

Структура PROTOCOL_INFO содержит сведения о протоколе.

Синтаксис

typedef struct _PROTOCOL_INFOA {
  DWORD dwServiceFlags;
  INT   iAddressFamily;
  INT   iMaxSockAddr;
  INT   iMinSockAddr;
  INT   iSocketType;
  INT   iProtocol;
  DWORD dwMessageSize;
  LPSTR lpProtocol;
} PROTOCOL_INFOA, *PPROTOCOL_INFOA, *LPPROTOCOL_INFOA;

Члены

dwServiceFlags

Тип: DWORD

Набор битовых флагов, указывающий службы, предоставляемые протоколом. Можно задать один или несколько следующих битовых флагов.

Значение Значение
XP_CONNECTIONLESS
Если этот флаг установлен, протокол предоставляет службу без подключения (датаграммы). Если этот флаг не задан, протокол обеспечивает передачу данных, ориентированных на подключение.
XP_GUARANTEED_DELIVERY
Если этот флаг установлен, протокол гарантирует, что все отправленные данные достигнут предполагаемого назначения. Если этот флаг ясен, такой гарантии нет.
XP_GUARANTEED_ORDER
Если этот флаг установлен, протокол гарантирует, что данные будут поступать в том порядке, в котором они были отправлены. Обратите внимание, что эта характеристика не гарантирует доставку данных, а только их порядок. Если этот флаг не задан, порядок отправки данных не гарантируется.
XP_MESSAGE_ORIENTED
Если этот флаг установлен, протокол ориентирован на сообщения. Протокол, ориентированный на сообщения, учитывает границы сообщений. Если этот флаг не задан, протокол ориентирован на поток, а понятие границ сообщений не имеет значения.
XP_PSEUDO_STREAM
Если этот флаг установлен, протокол является протоколом, ориентированным на сообщения, который игнорирует границы сообщений для всех операций получения.

Эта необязательная возможность полезна, если вы не хотите, чтобы протокол обрамлял сообщения. Приложение, требующее потоковой характеристики, может открыть сокет с типом SOCK_STREAM для транспортных протоколов, поддерживающих эту функцию, независимо от значения iSocketType.

XP_GRACEFUL_CLOSE
Если этот флаг установлен, протокол поддерживает двухфазные операции закрытия, также называемые корректной операцией закрытия. Если этот флаг не задан, протокол поддерживает только прерванные операции закрытия.
XP_EXPEDITED_DATA
Если этот флаг установлен, протокол поддерживает ускоренную обработку данных, также называемую срочными данными.
XP_CONNECT_DATA
Если этот флаг установлен, протокол поддерживает подключение данных.
XP_DISCONNECT_DATA
Если этот флаг установлен, протокол поддерживает отключение данных.
XP_SUPPORTS_BROADCAST
Если этот флаг установлен, протокол поддерживает широковещательный механизм.
XP_SUPPORTS_MULTICAST
Если этот флаг установлен, протокол поддерживает механизм многоадресной рассылки.
XP_BANDWIDTH_ALLOCATION
Если этот флаг установлен, протокол поддерживает механизм выделения гарантированной пропускной способности приложению.
XP_FRAGMENTATION
Если этот флаг установлен, протокол поддерживает фрагментацию сообщений; MTU физической сети скрыт от приложений.
XP_ENCRYPTS
Если этот флаг установлен, протокол поддерживает шифрование данных.

iAddressFamily

Тип: INT

Значение, передаваемое в качестве параметра af при вызове функции сокета для открытия сокета для протокола. Это значение семейства адресов однозначно определяет структуру адресов протокола, также известную как структуры sockaddr , используемые протоколом.

iMaxSockAddr

Тип: INT

Максимальная длина адреса сокета, поддерживаемого протоколом, в байтах.

iMinSockAddr

Тип: INT

Минимальная длина адреса сокета, поддерживаемого протоколом, в байтах.

iSocketType

Тип: INT

Значение, передаваемое в качестве параметра типа при вызове функции сокета для открытия сокета для протокола.

Обратите внимание, что если XP_PSEUDO_STREAM задано в dwServiceFlags, приложение может указать SOCK_STREAM в качестве параметра типа для сокета, независимо от значения iSocketType.

iProtocol

Тип: INT

Значение, передаваемое в качестве параметра протокола при вызове функции сокета для открытия сокета для протокола.

dwMessageSize

Тип: DWORD

Максимальный размер сообщения, поддерживаемый протоколом, в байтах. Это максимальный размер сообщения, которое может быть отправлено или получено узлом. Для протоколов, которые не поддерживают кадрирование сообщений, фактический максимальный размер сообщения, которое может быть отправлено на указанный адрес, может быть меньше этого значения.

Определены следующие специальные значения размера сообщений.

Значение Значение
0
Протокол ориентирован на поток; Понятие размера сообщения не имеет значения.
0xFFFFFFFF
Протокол ориентирован на сообщения, но максимальный размер сообщения отсутствует.

lpProtocol

Тип: LPTSTR

Указатель на строку с нулевым завершением, которая предоставляет имя для протокола; Например, "SPX2".

Комментарии

Примечание

Заголовок nspapi.h определяет PROTOCOL_INFO в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть nspapi.h

См. также раздел

EnumProtocols

Сокета