Windows Driver Kit: Network Devices and Protocols
OID_GEN_LINK_STATE

As a query, NDIS and overlying drivers use the OID_GEN_LINK_STATE OID to determine the current link state of a miniport adapter. The miniport driver receives the link statein an NDIS_LINK_STATE structure.

Version Information

Windows Vista
Supported.
NDIS 6.0 miniport drivers
Not requested. (see Comments section)

The NDIS_LINK_STATE structure is defined as follows:

typedef struct _NDIS_LINK_STATE {
  NDIS_OBJECT_HEADER  Header;
  NDIS_MEDIA_CONNECT_STATE  MediaConnectState;
  NDIS_MEDIA_DUPLEX_STATE  MediaDuplexState;
  ULONG64  XmitLinkSpeed;
  ULONG64  RcvLinkSpeed;
  NDIS_SUPPORTED_PAUSE_FUNCTIONS  PauseFunctions;
  ULONG  AutoNegotiationFlags;
} NDIS_LINK_STATE, *PNDIS_LINK_STATE;

This structure contains the following members:

Header
The NDIS_OBJECT_HEADER structure for the NDIS_LINK_STATE structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_DEFAULT, the Revision member to NDIS_LINK_STATE_REVISION_1, and the Size member to NDIS_SIZEOF_LINK_STATE_REVISION_1.
MediaConnectState
The media connect state. This value is the same as the value that is returned by the OID_GEN_MEDIA_CONNECT_STATUS_EX OID.
MediaDuplexState
The media duplex state. This value is the same as the value that is returned by the OID_GEN_MEDIA_DUPLEX_STATE OID.
XmitLinkSpeed
The transmit link speed in bits per second. A value of NDIS_LINK_SPEED_UNKNOWN indicates that the transmit link speed is unknown.
RcvLinkSpeed
The receive link speed in bits per second. A value of NDIS_LINK_SPEED_UNKNOWN indicates that the receive link speed is unknown.
PauseFunctions
The type of support for the IEEE 802.3 pause frames. This member must be one of the following pause functions:
NdisPauseFunctionsUnsupported
The adapter or link partner does not support pause frames.
NdisPauseFunctionsSendOnly
The adapter and link partner support only sending pause frames from the adapter to the link partner.
NdisPauseFunctionsReceiveOnly
The adapter and link partner support only sending pause frames from the link partner to the adapter
NdisPauseFunctionsSendAndReceive
The adapter and link partner support sending and receiving pause frames in both transmit and receive directions.
NdisPauseFunctionsUnknown
Pause frame negotiation is in progress. The pause frame support that the link partner provides is unknown.
AutoNegotiationFlags
The auto-negotiation settings for the miniport adapter. This member is created from a bitwise OR of the following flags:
NDIS_LINK_STATE_XMIT_LINK_SPEED_AUTO_NEGOTIATED
The adapter has auto-negotiated the transmit link speed with the link partner.
NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED
The adapter has auto-negotiated the receive link speed with the link partner.
NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED
The adapter has auto-negotiated the duplex state with the link partner.
NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED
The adapter has auto-negotiated the pause functions with the link partner.

Headers

Declared in Ntddndis.h. Include Ndis.h.

Comments

Miniport drivers supply the link state during initialization and provide updates with status indications.

To specify the link state, set the MediaConnectState, MediaDuplexState, XmitLinkSpeed, RcvLinkSpeed, PauseFunctions, and AutoNegotiationFlags members of the NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES structure that the miniport driver passes to the NdisMSetMiniportAttributes function. If a miniport driver does not support this OID, the driver should return NDIS_STATUS_NOT_SUPPORTED. If the miniport driver supports this OID, it returns the connection state, duplex state, and link speeds in an NDIS_LINK_STATE structure.

See Also

NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES, NDIS_OBJECT_HEADER, NdisMSetMiniportAttributes, OID_GEN_MEDIA_CONNECT_STATUS_EX, OID_GEN_MEDIA_DUPLEX_STATE


Send feedback on this topic
Built on May 31, 2009
Tags :


Page view tracker