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
如果设置了此标志,则协议是面向消息的协议,它忽略所有接收操作的消息边界。

如果不希望协议对消息进行框架处理,则此可选功能非常有用。 无论 iSocketType 的值如何,需要面向流的特征的应用程序都可以为支持此功能的传输协议打开类型SOCK_STREAM的套接字。

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

调用套接字函数以打开协议套接字时要作为类型参数传递的值。

请注意,如果在 dwServiceFlags 中设置了XP_PSEUDO_STREAM,则应用程序可以将 SOCK_STREAM 指定为套接字的类型参数,而不考虑 iSocketType 的值。

iProtocol

类型: INT

调用套接字函数以打开协议套接字时作为协议参数传递的值。

dwMessageSize

类型:DWORD

协议支持的最大消息大小(以字节为单位)。 这是主机可以发送或接收的消息的最大大小。 对于不支持消息帧的协议,可发送到给定地址的消息的实际最大大小可能小于此值。

定义了以下特殊消息大小值。

含义
0
协议面向流;消息大小的概念不相关。
0xFFFFFFFF
协议面向消息,但没有最大消息大小。

lpProtocol

类型: LPTSTR

指向提供协议名称的零终止字符串的指针;例如,“SPX2”。

注解

注意

nspapi.h 标头将 PROTOCOL_INFO 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 nspapi.h

另请参阅

EnumProtocols

socket