struct _TDI_PROVIDER_STATISTICS {
ULONG Version;
ULONG OpenConnections;
ULONG ConnectionsAfterNoRetry;
ULONG ConnectionsAfterRetry;
ULONG LocalDisconnects;
ULONG RemoteDisconnects;
ULONG LinkFailures;
ULONG AdapterFailures;
ULONG SessionTimeouts;
ULONG CancelledConnections;
ULONG RemoteResourceFailures;
ULONG LocalResourceFailures;
ULONG NotFoundFailures;
ULONG NoListenFailures;
ULONG DatagramsSent;
LARGE_INTEGER DatagramBytesSent;
ULONG DatagramsReceived;
LARGE_INTEGER DatagramBytesReceived;
ULONG PacketsSent;
ULONG PacketsReceived;
ULONG DataFramesSent;
LARGE_INTEGER DataFrameBytesSent;
ULONG DataFramesReceived;
LARGE_INTEGER DataFrameBytesReceived;
ULONG DataFramesResent;
LARGE_INTEGER DataFrameBytesResent;
ULONG DataFramesRejected;
LARGE_INTEGER DataFrameBytesRejected;
ULONG ResponseTimerExpirations;
ULONG AckTimerExpirations;
ULONG MaximumSendWindow;
ULONG AverageSendWindow;
ULONG PiggybackAckQueued;
ULONG PiggybackAckTimeouts;
LARGE_INTEGER WastedPacketSpace;
ULONG WastedSpacePackets;
ULONG NumberOfResources;
TDI_PROVIDER_RESOURCE_STATS Resources[1];
} TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS;
TDI_PROVIDER_STATISTICS 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_STATISTICS.
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.
OpenConnections
Specifies the number of open connection endpoints in the transport.
ConnectionsAfterNoRetry
Specifies the number of connections the transport has established with remote-node clients without doing frame retransmissions.
ConnectionsAfterRetry
Specifies the number of connections the transport has established with remote node clients after doing some frame retransmissions.
LocalDisconnects
Specifies the number of endpoint-to-endpoint connections that the transport's local-node clients have closed.
RemoteDisconnects
Specifies the number of endpoint-to-endpoint connections that remote-node clients have closed.
LinkFailures
Specifies the number of connections lost due to link-level failures.
AdapterFailures
Specifies the number of connections lost due to problems in the underlying NIC driver.
SessionTimeouts
Specifies the number of connections lost due to session-level time-outs.
CancelledConnections
Specifies the number of rejected connection offers.
RemoteResourceFailures
Specifies the number of connections that have failed due to resource problems at a remote node.
LocalResourceFailures
Specifies the number of connections that have failed due to local-node resource problems.
NotFoundFailures
Specifies the number of connection attempts that have failed because the transport could not find the specified remote node on the network.
NoListenFailures
Specifies the number of incoming connection offers failed because local-node clients were not listening for incoming connections.
DatagramsSent
Specifies the number of datagrams the TDI transport has sent.
DatagramBytesSent
Specifies the number of bytes in all datagrams the transport has sent.
DatagramsReceived
Specifies the number of datagrams the TDI transport has received.
DatagramBytesReceived
Specifies the number of bytes in all datagrams the transport has received.
PacketsSent
Specifies the number of packets, including control, data, and other frames, the transport has sent through NDIS to the physical medium.
PacketsReceived
Specifies the number of packets, including control, data, and other frames, the transport has received from the physical medium through NDIS.
DataFramesSent
Specifies the number of data frames the underlying NDIS NIC driver has sent.
DataFrameBytesSent
Specifies the number of bytes of frame data the underlying NDIS NIC driver has sent.
DataFramesReceived
Specifies the number of data frames the underlying NDIS NIC driver has received.
DataFrameBytesReceived
Specifies the number of bytes of frame data the underlying NDIS NIC driver has received.
DataFramesResent
Specifies the number of data frames the underlying NDIS NIC driver has re-sent.
DataFrameBytesResent
Specifies the number of bytes of frame data the underlying NDIS NIC driver has re-sent.
DataFramesRejected
Specifies the number of data frames the underlying NDIS NIC driver has received but rejected.
DataFrameBytesRejected
Specifies the number of bytes of frame data the underlying NDIS NIC driver has received but rejected.
ResponseTimerExpirations
Specifies the number of times the response timer (for example, T1 for NetBIOS) has expired.
AckTimerExpirations
Specifies the number of times the acknowledgment timer (for example, T2 for NetBIOS) has expired.
MaximumSendWindow
Specifies the maximum send window, in bytes, of the transport.
AverageSendWindow
Specifies the average send window, in bytes, of the transport.
PiggybackAckQueued
Specifies the number of times the transport has started a timer waiting for reverse traffic on which it can piggyback a data acknowledgment to a remote node.
PiggybackAckTimeouts
Specifies the number of times a piggyback acknowledgment timer has expired before the transport could send reverse traffic to a remote node.
WastedPacketSpace
Specifies the total number of bytes of wasted buffer space for transferred packets.
WastedSpacePackets
Specifies how many packets contributed to the value of WastedPacketSpace.
NumberOfResources
Specifies the number of elements of type TDI_PROVIDER_RESOURCE_STATS in the array at Resources.
Resources[1]
Specifies an array of TDI_PROVIDER_RESOURCE_STATS structures, each defined as follows:
struct _TDI_PROVIDER_RESOURCE_STATS {
ULONG ResourceId;
ULONG MaximumResourceUsed;
ULONG AverageResourceUsed;
ULONG ResourceExhausted;
} TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS;
ResourceId
Specifies a transport-specific value identifying a resource.
MaximumResourceUsed
Specifies the maximum number of resources of the specified type the transport can use concurrently.
AverageResourceUsed
Specifies the average number of resources of the specified type the transport uses overall.
ResourceExhausted
Specifies the number of times the transport has failed to allocate the specified resource.
Comments
Any kernel-mode client that has opened a control channel can make a query to determine the current statistics maintained by its underlying transport. Such a client sets up an IRP with TdiBuildQueryInformation, passing in the QType TDI_QUERY_PROVIDER_STATISTICS, and submits the IRP to the underlying transport to get this information.
TDI_PROVIDER_STATISTICS defines the format in which the transport returns the requested information for such a query.
See Also
TdiBuildQueryInformation, TDI_QUERY_INFORMATION, TDI_PROVIDER_INFO