TDI_PROVIDER_STATISTICS

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