Partager via


NDIS_WAN_LINE_UP (Windows Embedded CE 6.0)

1/6/2010

This message is used to indicate a line-up status.

Syntax

typedef struct _NDIS_WAN_LINE_UP {
  ULONG LinkSpeed;
  ULONG MaximumTotalSize;
  NDIS_WAN_QUALITY Quality;
  USHORT SendWindow;
  UCHAR RemoteAddress[6];
  UCHAR LocalAddress[6];
  ULONG ProtocolBufferLength;
  PUCHAR ProtocolBuffer;
  USHORT ProtocolType;
  NDIS_STRING DeviceName;
} NDIS_WAN_LINE_UP, *PNDIS_WAN_LINE_UP;

Parameters

  • LinkSpeed
    Specifies the speed of the link, in units of 100 bps. Zero indicates no change from the speed returned when the protocol called NdisRequest with OID_GEN_LINK_SPEED.
  • MaximumTotalSize
    Specifies the maximum number of bytes per packet that the protocol can send over the network. Zero indicates no change from the value returned when the protocol called NdisRequest with OID_GEN_MAXIMUM_TOTAL_SIZE.
  • Quality
    Reserved for future use.
  • SendWindow
    Specifies the underlying WAN network interface card (NIC) driver's send window, which is effectively its limit on outstanding send packets it will handle for this link. After submitting this number of packets to MiniportWanSend, NDISWAN will hold incoming sends queued until the driver completes an outstanding send.
  • RemoteAddress
    Represents the address of the remote node on the link in Ethernet-style format. NDISWAN supplies this value.
  • LocalAddress
    Represents the protocol-determined context for indications on this link in Ethernet-style format. NDISWAN reserves the two high-order bytes for its own use; the protocol should set the remainder to whatever should be the input parameter for this link to its ProtocolReceive and ProtocolStatus functions thereafter.
  • ProtocolBufferLength
    Specifies the number of bytes in the buffer at ProtocolBuffer.
  • ProtocolBuffer
    Points to a buffer, allocated by NDISWAN, containing protocol-specific information supplied by a higher-level component that makes connections through NDISWAN to the appropriate protocols. For example, this buffer would contain an IP address if the target protocol is IP or an IPX network number if the target protocol is IPX. NDISWAN frees this buffer when the target protocol returns control from the line-up indication.
  • ProtocolType
    Specifies the assigned ether type of the protocol.
  • DeviceName
    Specifies the name of the binding as a counted string in the system-default character set. For Windows Embedded CE–based drivers, this string contains Unicode characters. This string can be at most 64 characters.

Return Value

None.

Remarks

When a WAN miniport calls NdisMIndicateStatus with a line-up indication, NDISWAN forwards the indication to interested protocols, formatted in this structure. At the initial line-up indication for a given link, the protocol should save any necessary state for subsequent communications on the link, including possible line-up, line-down, and fragment indications.

Subsequently, the protocol can use the SendWindow value as its upper bound on the number of calls it makes to NdisSend for this link before the protocol regains ownership of at least one of the packets it sent down to the underlying WAN NIC driver. Some NICs achieve higher throughput if they have several packets to send at once. Others could become unreliable if their drivers are flooded with send packets. NDISWAN also uses the miniport-set SendWindow value in this manner.

NDISWAN uses Ethernet-style address format to communicate with protocols, so the RemoteAddress and LocalAddress parameters are 6-byte addresses and are used as follows:

  • NDISWAN uses RemoteAddress to designate a particular link-protocol context. At the initial line-up indication for a link, the protocol should save the RemoteAddress value supplied by NDISWAN. Subsequently, the protocol passes the RemoteAddress value to NDISWAN in calls to NdisSend for transmissions on this link.
  • The protocol uses LocalAddress to set up context for itself in the low-order 4 bytes (&LocalAddress[2]) when it receives the initial line-up indication for a link being established. Subsequently, NDISWAN passes the LocalAddress value to the protocol at receive and status indications. In effect, NDISWAN uses the given LocalAddress value as the destination for incoming receives and status indications on the link thereafter.

The DeviceName parameter is used with stacks in which a lower-level protocol has a single binding to NDISWAN but several bindings between it and a higher-level protocol in the stack, and this member might be used to support future Plug and Play scenarios. That is, DeviceName would be used for either of the following:

  • To identify the binding (IN) to which a lower protocol should propagate the line-up indication it is given by NDISWAN.
  • In a Plug and Play environment, to report back (OUT) to NDISWAN the name of a newly created binding set up by a lower protocol at a line-up indication.

Requirements

Header ndis.h
Windows Embedded CE Windows CE 3.0 and later

See Also

Reference

NDIS Messages
MiniportWanSend
NdisMIndicateStatus
NdisRequest
NdisSend
ProtocolReceive
ProtocolStatus