There is no such thing as a "normal filter NDIS IM driver". Each one does
something specific to that drivers requirements. What your driver is
logically trying to do has not been made known in any of your posts so
trying to advise you on how (or if you even need to) do that operation on a
NDISWAN virtual miniport is rather a challenge.
Does your driver *need* to bind to any NDISWANxxx virtual miniports? In
other words, does your driver need to process packets that will be
encapsulated into PPP (or SLIP or NBF) and sent over a RAS connection?
If so, then, you must consider carefully how this is done. NDISWAN
exposes a single virtual miniport for each type of protocol that it can be
bound to. This basically means that on Virtual Miniport handles IPv4
frames, one handles IPv6 frames, one handles IPX frames, and one handles NBF
frames. A fourth handles packet monitoring only.
Assuming that your IM only cares about IPv4 traffic you then need to be
aware that multiple PPP connections are multiplexed up through a single
NDISWAN Virtual Adapter. The MAC addresses in the packets (they look like
802.3 packets) are not MAC addresses at all but identifiers that NDISWAN.SYS
and WANARP.SYS use to identify the connection. Your IM driver must ensure
that the MAC address information is not corrupted otherwise NDISWAN.SYS and
WANARP.SYS will have no idea where the packets are to go.
If your IM driver is expecting to learn the IP address(es) assigned to the
'adapter' by monitoring OID_GEN_NETWORK_LAYER_ADDRESSES you are out of luck
for NDISWAN bindings. Instead, you must monitor IP address changes (or IPX
if you are into that sort of thing) using TDI callbacks in conjunction with
NDIS_STATUS_WAN_LINE_{UP|DOWN}. See the DDK docs for NDIS_WAN_LINE_UP and
NDIS_WAN_LINE_DOWN as well as NdisMIndicateStatus. Keep in mind that your
ProtocolStatus() function *must* assume that it can be called at IRQL <=
DISPATCH_LEVEL so processing an ProtocolStatus(....,
NDIS_STATUS_WAN_LINE_{UP|DOWN}...) can be a bit tricky.
Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development
Post by Anand ChoubeyJust curiosity!!! Could you please provide pointers/links where I get
pointers for NDISWAN binding with normal filter NDIS IM driver?
Regards,
Anand Choubey