OID_GEN_LINK_PARAMETERS (Compact 2013)

3/26/2014

As a set, NDIS and overlying drivers use this OID to set the current link state of a miniport adapter. The miniport driver receives the duplex state, link speeds, and pause functions in an NDIS_LINK_PARAMETERS structure.

Syntax

typedef struct _NDIS_LINK_PARAMETERS {
  NDIS_OBJECT_HEADER  Header;
  NDIS_MEDIA_DUPLEX_STATE  MediaDuplexState;
  ULONG64  XmitLinkSpeed;
  ULONG64  RcvLinkSpeed;
  NDIS_SUPPORTED_PAUSE_FUNCTIONS  PauseFunctions;
  ULONG  AutoNegotiationFlags;
} NDIS_LINK_PARAMETERS, *PNDIS_LINK_PARAMETERS;

Members

  • Header
    The NDIS_OBJECT_HEADER structure for the NDIS_LINK_PARAMETERS structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_LINK_PARAMETERS, the Revision member to NDIS_LINK_PARAMETERS_REVISION_1, and the Size member to sizeof(NDIS_LINK_PARAMETERS).
  • 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.
  • RcvLinkSpeed
    The receive link speed in bits per second.
  • 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.
  • 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 should auto-negotiate the transmit link speed with the link partner. If this flag is not set, the miniport driver should set the transmit link speed to the value that is specified in the XmitLinkSpeed member.
    • NDIS_LINK_STATE_RCV_LINK_SPEED_AUTO_NEGOTIATED
      The adapter should auto-negotiate the receive link speed with the link partner. If this flag is not set, the miniport driver should set the receive link speed to the value that is specified in the RcvLinkSpeed member.
    • NDIS_LINK_STATE_DUPLEX_AUTO_NEGOTIATED
      The adapter should auto-negotiate the duplex state with the link partner. If this flag is not set, the miniport driver should set the duplex state to the value that is specified in the MediaDuplexState member.
    • NDIS_LINK_STATE_PAUSE_FUNCTIONS_AUTO_NEGOTIATED
      The miniport driver should auto-negotiate the support for pause frames with the other end. If this flag is not set, the miniport driver should use the pause frame support that is specified in the PauseFunctions member.

Remarks

Setting OID_GEN_LINK_PARAMETERS can cause a loss of connectivity. Miniport drivers must reconfigure the miniport adapter when this OID is set. For example, the miniport driver can reset the miniport adapter with the resulting loss of existing connections. The specific mechanism for reconfiguration is application dependent.

If the link state of the miniport adapter changes because of the OID_GEN_LINK_PARAMETERS set request, the miniport driver should generate an NDIS_STATUS_LINK_STATEstatus indication to notify NDIS and overlying drivers of the new link state.

Requirements

Header

ntddndis.h

See Also

Reference

NDIS 6.0 General OIDs for Miniport Drivers
NDIS_OBJECT_HEADER
NDIS_STATUS_LINK_STATE
OID_GEN_MEDIA_DUPLEX_STATE