OID_WAN_CO_GET_INFO

The OID_WAN_CO_GET_INFO OID requests the miniport driver to return information that applies to all virtual connections (VCs) on its NIC. This information is returned in an NDIS_WAN_CO_INFO structure, defined as follows.

    typedef struct _NDIS_WAN_CO_INFO {
         OUT ULONG MaxFrameSize;
         OUT ULONG MaxSendWindow;
         OUT ULONG FramingBits;
         OUT ULONG DesiredACCM;
    } NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;

The members of this structure contain the following information:

MaxFrameSize
Specifies the maximum frame size for any net packet that the miniport driver can send and receive. This value should exclude the miniport driver's own framing overhead and/or the PPP HDLC overhead. Typically this value is around 1500.

However, all CoNDIS WAN miniport drivers should use an internal MaxFrameSize that is 32 bytes larger than the value they return for this OID. For example, a CoNDIS WAN miniport driver that returns 1500 for this OID should internally accept and send up to 1532. Such a miniport driver can readily support future bridging and additional protocols.

MaxSendWindow
Specifies the maximum number of outstanding packets that the CoNDIS WAN miniport driver can handle on a VC. This member must be set to at least one.

The NDISWAN driver uses the value of this member as a limit on how many packets it submits in send requests to the miniport driver's MiniportCoSendPackets function before NDISWAN holds send packets. These packets are queued until the miniport driver completes an outstanding send. A miniport driver can adjust this value dynamically and on a per-VC basis using the SendWindow member in the WAN_CO_LINKPARAMS structure that the miniport driver passes to NdisMCoIndicateStatus. NDISWAN uses the current SendWindow value as its limit on outstanding sends. If the miniport driver sets SendWindow to zero, NDISWAN must stop sending packets for the particular VC. That is, the miniport driver specifies that the send window is shut down, which, in effect, specifies that it cannot accept any packets from NDISWAN.

Because a CoNDIS WAN miniport driver must queue packets internally, the value of MaxSendWindow is theoretically max( ULONG). However, this driver-determined value should reflect the link speed or hardware capabilities of the NIC. For example, if a miniport driver's NIC always has room for at least four packets, the miniport driver sets MaxSendWindow to four so that any incoming packet to MiniportCoSendPackets can be placed on the hardware immediately.

FramingBits
A 32-bit value that specifies a bitmask specifying the types of framing the miniport driver supports. The miniport driver can specify a combination of the following values, using the binary OR operator:

RAS_FRAMING
Set only if the miniport driver can detect older RAS framing. Only legacy drivers that supported earlier RAS framing set this flag.

RAS_COMPRESSION
Set only if the miniport driver supports the older RAS compression scheme.

PPP_FRAMING
Should always be set. Indicates the miniport driver can detect and support PPP framing for its medium type.

PPP_COMPRESS_ADDRESS_CONTROL
Set if the miniport driver supports PPP address and control-field compression.

NDISWAN will remove the address and control field if this LCP option is negotiated. Some WAN medium types, such as X.25, do not support this option.

PPP_COMPRESS_PROTOCOL_FIELD
Set if the miniport driver supports PPP protocol field compression.

NDISWAN will remove one byte from the protocol field when applicable if this LCP option is negotiated.

PPP_ACCM_SUPPORTED
Set if the miniport driver supports Asynchronous Control Character Mapping. This bit is only valid for asynchronous media, such as modems. If this bit is set the DesiredACCM member should be valid.

PPP_MULTILINK_FRAMING
Set if the miniport driver supports multiple-link framing as specified in IETF RFC 1717.

PPP_SHORT_SEQUENCE_HDR_FORMAT
Set if the miniport driver supports header format for multiple-link framing as specified in IETF RFC 1717.

SLIP_FRAMING
Set if the miniport driver can detect and support SLIP framing (asynchronous miniport drivers only).

SLIP_VJ_COMPRESSION
Set if the miniport driver can support Van Jacobsen TCP/IP header compression for SLIP. NDISWAN supports SLIP_VJ_COMPRESSION (with 16 slots). Asynchronous media (serial miniport drivers) that support SLIP framing should set this bit.

Asynchronous media need not write any code to support VJ header compression. NDISWAN will take care of it.

SLIP_VJ_AUTODETECT
Set if the miniport driver can auto-detect Van Jacobsen TCP/IP header compression for SLIP. NDISWAN will auto-detect VJ header compression. Asynchronous media (serial miniport drivers) should set this bit if they support SLIP framing.

TAPI_PROVIDER
Set if the miniport driver supports the TAPI Service Provider OIDs. Unless this bit is set, TAPI OID calls will not be made to the miniport driver.

MEDIA_NRZ_ENCODING
Set if the miniport driver supports NRZ encoding, the PPP default for some media types such as ISDN. This value is reserved for future use.

MEDIA_NRZI_ENCODING
Set if the miniport driver supports NRZI encoding. This value is reserved for future use.

MEDIA_NLPID
Set if the miniport driver has and can set the NLPID in its frame. This value is reserved for future use.

RFC_1356_FRAMING
Set if the miniport driver supports IETF RFC 1356 X.25 and ISDN framing. This value is reserved for future use.

RFC_1483_FRAMING
Set if the miniport driver supports IETF RFC 1483 ATM adaptation layer-5 encapsulation. This value is reserved for future use.

RFC_1490_FRAMING
Set if the miniport driver supports IETF RFC 1490 Frame Relay framing. This value is reserved for future use.

NBF_PRESERVE_MAC_ADDRESS
Set if the miniport driver supports IETF framing as specified in the draft "The PPP NETBIOS Frames Control Protocol (NBFCP)."

SHIVA_FRAMING
Superseded by NBF_PRESERVE_MAC_ADDRESS.

PASS_THROUGH_MODE
Set if the miniport driver does its own framing. If this flag is set, NDISWAN passes frames, uninterpreted and unmodified.

Miniport drivers must be in the default PPP framing mode until each miniport driver receives an OID_WAN_CO_SET_LINK_INFO request. The miniport driver must auto-detect any framing that it claims to support.

For example, miniport drivers that support old RAS framing must auto-detect RAS framing from PPP framing. If a miniport driver detects a framing scheme other than the default, that miniport driver should automatically switch its framing into the newly detected framing.

A subsequent query with OID_WAN_CO_GET_LINK_INFO should indicate the detected framing. If no framing is yet detected, the FramingBits should be zero in the returned NDIS_WAN_CO_GET_LINK_INFO information.

If the WAN miniport driver is called subsequently with OID_WAN_CO_SET_LINK_INFO in which the FramingBits member is zero, the miniport driver should attempt to auto-detect the framing upon reception of each frame.

DesiredACCM
The Asynchronous Control Character Map is negotiated. This member is relevant only for asynchronous media types.

Requirements

Version

Supported for NDIS 6.0 and NDIS 5.1 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows XP.

Header

Ntddndis.h (include Ndis.h)

See also

NdisMCoIndicateStatus

OID_WAN_CO_GET_LINK_INFO

OID_WAN_CO_SET_LINK_INFO

WAN_CO_LINKPARAMS