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

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

请注意,如果在 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

套接字