TDI_PROVIDER_INFO
struct _TDI_PROVIDER_INFO {
ULONG Version;
ULONG MaxSendSize;
ULONG MaxConnectionUserData;
ULONG MaxDatagramSize;
ULONG ServiceFlags;
ULONG MinimumLookaheadData;
ULONG MaximumLookaheadData;
ULONG NumberOfResources;
LARGE_INTEGER StartTime;
} TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO;
TDI_PROVIDER_INFO defines the structure of the information returned for a
TDI_QUERY_INFORMATION request in which the IrpSp->Parameters.QueryType
is set to TDI_QUERY_PROVIDER_INFO or TDI_QUERY_PROVIDER_INFORMATION.
Members
-
Version
-
Specifies the TDI version number. The low-order bytes specify the minor
version number, and the high-order bytes the major version number.
-
MaxSendSize
-
Specifies the maximum number of bytes a client can provide per TDI_SEND
request.
-
MaxConnectionUserData
-
Specifies the maximum number of bytes a client can provide as user data in a
TDI_CONNECT, TDI_LISTEN, or TDI_ACCEPT request.
-
MaxDatagramSize
-
Specifies the maximum size, in bytes, of a datagram a client can send (or
receive).
-
ServiceFlags
-
Specifies features that the transport offers as a combination (Ored) of the
following flags:
-
TDI_SERVICE_CONNECTION_MODE
-
This transport supports connection-oriented traffic (endpoint-to-endpoint
transfers).
-
TDI_SERVICE_CONNECTIONLESS_MODE
-
This transport supports connectionless traffic (datagram sends and receives).
-
TDI_SERVICE_BROADCAST_SUPPORTED
-
This transport supports broadcast datagrams.
-
TDI_SERVICE_MULTICAST_SUPPORTED
-
This transport supports multicast datagrams.
-
TDI_SERVICE_ROUTE_DIRECTED
-
This transport supports directed packets, which can reach remote nodes that
datagrams cannot reach.
-
TDI_SERVICE_ORDERLY_RELEASE
-
This transport supports controlled disconnects.
-
TDI_SERVICE_DELAYED_ACCEPTANCE
-
This transport supports delayed-connection acceptances of incoming connection
offers from remote nodes.
-
TDI_SERVICE_EXPEDITED_DATA
-
This transport supports expedited sends and receives.
-
TDI_SERVICE_INTERNAL_BUFFERING
-
This transport buffers TSDUs internally.
-
TDI_SERVICE_MESSAGE_MODE
-
This transport supports message-mode sends and receives.
-
TDI_SERVICE_NO_ZERO_LENGTH
-
This transport does not support zero-length sends.
-
TDI_SERVICE_ERROR_FREE_DELIVERY
-
This transport supports error-free delivery.
-
TDI_SERVICE_POINT_TO_POINT
-
This transport is bound to an underlying point-to-point WAN NIC driver of type
NdisMediumWan.
-
TDI_SERVICE_SECURITY_LEVEL
-
This transport supports a security validator.
-
TDI_SERVICE_HALF_DUPLEX
-
The transport supports controlled disconnect operations such that after
receiving a disconnect request from the remote node, it continues to indicate
receives to the local-node client until its client also acknowledges the
disconnection.
-
MinimumLookaheadData
-
Specifies the lower limit on the number of bytes this transport guarantees to
indicate as lookahead data for receive and receive-datagram events.
-
MaximumLookaheadData
-
Specifies the upper limit on the number of bytes this transport guarantees to
indicate as lookhead data for receive and receive-datagram events. If the
underlying NIC driver supports multipacket receive indications, this value can
be the maximum packet size supported by the network.
-
NumberOfResources
-
Specifies the number of TDI_PROVIDER_RESOURCE_STATS structures (resources)
this transport returns if a client submits a query-information request of the
type TDI_QUERY_PROVIDER_STATISTICS.
-
StartTime
-
Specifies the current system time at which the TDI driver became active.
Comments
Any kernel-mode client that has opened a control channel can make a query to
determine the supported features and limits of its underlying transport. Such
a client sets up an IRP with TdiBuildQueryInformation, passing in the QType
TDI_QUERY_PROVIDER_INFO, and submits the IRP to the underlying transport to
get this information.
TDI_PROVIDER_INFO defines the format in which the transport returns the
requested information for such a query.
For example, a client might use the values returned in the XxxLookaheadData
and NumberOfResources members to size client-allocated buffers for
subsequent client requests to the transport or to allocate buffers of an
appropriate size before it registers ClientEvent(Chained)Receive and/or
ClientEvent(Chained)ReceiveDatagram handlers.
See Also
ClientEventChainedReceive, ClientEventChainedReceiveDatagram,
ClientEventChainedReceiveExpedited,
ClientEventReceive, ClientEventReceiveDatagram,
ClientEventReceiveExpedited,
TdiBuildQueryInformation, TdiBuildSetEventHandler,
TDI_ACCEPT, TDI_CONNECT, TDI_LISTEN,
TDI_QUERY_INFORMATION, TDI_PROVIDER_STATISTICS