PROTOCOL_INFO
The PROTOCOL_INFO
structure contains information about a protocol.
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 specify the services provided by the protocol. One or more of the
following bit flags may be set:
Value |
Meaning |
XP_CONNECTIONLESS |
If this
flag is set, the protocol providesconnectionless (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, but guarantees only its 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 isset, 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
Specifies the
value to pass as the af parameter when you call the socket
function to open a socket for the protocol. This address family value uniquely
defines the structure of Protocol addresses, also known as SOCKADDRs, used by
the protocol.
iMaxSockAddr
Specifies the
maximum length of a socket address supported by the protocol.
iMinSockAddr
Specifies the
minimum length of a socket address supported by the protocol.
iSocketType
Specifies the
value to pass as the type parameter when you call the socket
function to open a socket for the protocol.
Note that if XP_PSEUDO_STREAM is set in dwServiceFlags, the
application can specify SOCK_STREAM as the type parameter to socket,
regardless of the value of iSocketType.
iProtocol
Specifies the
value to pass as the protocol parameter when you call the socket function
to open a socket for the protocol.
dwMessageSize
Specifies the
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 special message size values are defined:
Value |
Meaning |
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.
See Also