There are several differences in the way a WAN miniport interfaces with NDIS
as compared to a LAN miniport driver described in the previous chapters. Such
differences affect how a WAN driver is implemented.
A WAN miniport must not register a MiniportTransferData handler with NdisMRegisterMiniport.
Instead, a WAN miniport always passes an entire packet to the NdisMWanIndicateReceive
function. When NdisMWanIndicateReceive returns, the packet has been
copied and the WAN miniport can reuse the packet resources it allocated.
WAN miniports provide a MiniportWanSend function instead of a MiniportSend
function. The MiniportWanSend function accepts an additional parameter that
specifies a specific data channel on which a packet is to be sent.
WAN miniports never return NDIS_STATUS_RESOURCES as the status of
MiniportSend or any other MiniportXxx function and cannot call NdisMSendResourcesAvailable.
WAN miniports support a set of WAN-specific OIDs to set and query operating
characteristics.
WAN miniports support a set of WAN-specific status indications which are
passed to NdisMIndicateStatus.
These status indications report changes in the status of a link.
WAN miniports call alternative WAN-specific NDIS functions to complete the
WAN-specific NDIS calls for send and receive. The two completion calls are: