Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This structure contains information about a protocol.

Syntax

typedef struct _PROTOCOL_INFO { 
  DWORD 
dwServiceFlags; 
  INT 
iAddressFamily; 
  INT 
iMaxSockAddr; 
  INT 
iMinSockAddr; 
  INT 
iSocketType; 
  INT 
iProtocol; 
  DWORD 
dwMessageSize; 
  LPTSTR 
lpProtocol;
} PROTOCOL_INFO; 

Members

dwServiceFlags

A set of bit flags that specifies the services provided by the protocol. The following table shows the bit flags you may set.

Value Description

XP_CONNECTIONLESS

If this flag is set, the protocol provides connectionless (datagram) service. If this flag is clear, the protocol provides connection-oriented data transfer.

XP_GUARANTEED_DELIVERY

If this flag is set, the protocol guarantees that all data sent will reach the intended destination. If this flag is clear, there is no such guarantee.

XP_GUARANTEED_ORDER

If this flag is set, the protocol guarantees that data will arrive in the order in which it was sent. Note that this characteristic does not guarantee delivery of the data, onlyits order. If this flag is clear, the order of data sent is not guaranteed.

XP_MESSAGE_ORIENTED

If this flag is set, the protocol is message-oriented. A message-oriented protocol honors message boundaries. If this flag is clear, the protocol is stream oriented, and the concept of message boundaries is irrelevant.

XP_PSEUDO_STREAM

If this flag is set, the protocol is a message-oriented protocol that ignores message boundaries for all receive operations.

This optional capability is useful when you do not want the protocol to frame messages. An application that requires stream-oriented characteristics can open a socket with type SOCK_STREAM for transport protocols that support this functionality, regardless of the value of iSocketType.

XP_GRACEFUL_CLOSE

If this flag is set, the protocol supports two-phase close operations, also known as graceful close operations. If this flag is clear, the protocol supports only abortive close operations.

XP_EXPEDITED_DATA

If this flag is set, the protocol supports expedited data, also known as urgent data.

XP_CONNECT_DATA

If this flag is set, the protocol supports connect data.

XP_DISCONNECT_DATA

If this flag is set, the protocol supports disconnect data.

XP_SUPPORTS_BROADCAST

If this flag is set, the protocol supports a broadcast mechanism.

XP_SUPPORTS_MULTICAST

If this flag is set, the protocol supports a multicast mechanism.

XP_BANDWIDTH_ALLOCATION

If this flag is set, the protocol supports a mechanism for allocating a guaranteed bandwidth to an application.

XP_FRAGMENTATION

If this flag is set, the protocol supports message fragmentation; physical network MTU is hidden from applications.

XP_ENCRYPTS

If this flag is set, the protocol supports data encryption.

iAddressFamily

Value to pass as the afparameter when the socket (Windows Sockets)function is called to open a socket for the protocol. This address family value uniquely defines the structure of protocol addresses, also known as sockaddrstructures, used by the protocol.

iMaxSockAddr

Maximum length of a socket address supported by the protocol.

iMinSockAddr

Minimum length of a socket address supported by the protocol.

iSocketType

Value to pass as the typeparameter when the socket (Windows Sockets)function is called to open a socket for the protocol.

Note:
If XP_PSEUDO_STREAM is set in dwServiceFlags, the application can specify SOCK_STREAM as the typeparameter to socket, regardless of the value of iSocketType.
iProtocol

Value to pass as the protocolparameter when the socket (Windows Sockets)function is called to open a socket for the protocol.

dwMessageSize

Maximum message size supported by the protocol. This is the maximum size of a message that can be sent from or received by the host. For protocols that do not support message framing, the actual maximum size of a message that can be sent to a given address may be less than this value.

The following table shows the special message size values that are defined.

Value Description

0

The protocol is stream-oriented; the concept of message size is not relevant.

0xFFFFFFFF

The protocol is message-oriented, but there is no maximum message size.

lpProtocol

Points to a zero-terminated string that supplies a name for the protocol, for example, SPX2.

Requirements

Header winsock2.h
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also