OID_GEN_LINK_PARAMETERS

As a set, NDIS and overlying drivers use the OID_GEN_LINK_PARAMETERS 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.

Version Information

Windows Vista and later versions of Windows
Supported.

NDIS 6.0 and later miniport drivers
Optional.

The NDIS_LINK_PARAMETERS structure is defined as follows:

    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;

This structure contains the following 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_DEFAULT, the Revision member to NDIS_LINK_PARAMETERS_REVISION_1, and the Size member to NDIS_SIZEOF_LINK_PARAMETERS_REVISION_1.

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

Note 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_STATE status indication to notify NDIS and overlying drivers of the new link state.

Requirements

Header

Ntddndis.h (include Ndis.h)

See also

NDIS_OBJECT_HEADER

NDIS_STATUS_LINK_STATE

OID_GEN_MEDIA_DUPLEX_STATE