Re: NetBIOS Routing

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance

From: Stuart Lynne (sl_at_whiskey.enposte.net)
Date: 11/24/04


Date: Wed, 24 Nov 2004 14:20:30 -0800

In article <6e8a2a95.0411240539.23c4f575@posting.google.com>,
Stephan Wolf <stewo68@hotmail.com> wrote:
>
>An IM calls NdisIMInitializeDeviceInstanceEx() to explicitly start one
>of its virtual adapter instances. That is, MiniportInitialize() will
>be called for the respective virtual adapter *if* the user has not
>manually disabled this adapter.
>
>I guess what you need is *one* virtual adapter, which is *always*
>"alive". Then, when things change underneath your IM, that is, a USB
>device gets plugged in our out, you simply talk to whichever miniport
>of the present USB devices you prefer.

Yes, that is a good description of the requirements. There is a open
question as to whether the virtual adapter should remain or disappear
after the last USB device is unplugged. Most likely it will disappear
unless extra steps are taken to keep the top driver loaded
independantly. But that is an optimization for after the basic operation
is implemented.

>It would seem you need two drivers: One NDISWDM miniport driver, which
>talks to the actual USB devices. And one MUX IM driver, which talks to
>the physical adapters represented by the NDISWDM driver at its lower
>edge. This IM driver also represents only one virtual adapter at its
>upper edge.

So this is the top driver, similiar to the mux example:

> virtual
> adapter
> +-------------+
> | IM miniport |
> | - - - - - - |
> | IM protocol |
> +-------------+

And this is the bottom driver, which handles the physical devices.

> / \ physical adapters
> +-----------------------+
> | NDISWDM miniport |
> +-----------------------+
> | |
> +-----------+-----------+
> | WDM driver |
> | USB dev 1 | USB dev 2 |
> +-----------+-----------+
>

And the following is done in the top, mux, driver.

>The 'NetEventReconfigure' you mention should be used to call
>NdisReEnumerateProtocolBindings(), see also

> http://groups.google.com/groups?selm=3e7083db.16353414@news.t-online.de

With this setup do we end up with two or three inf files? With the mux
example it has two inf files (one for the protocol and one for the
miniport driver.)

Does the new lower driver for the physical devices replace the second
inf file required by the upper, mux, driver?

Thanks again,



Relevant Pages

  • Re: NetBIOS Routing
    ... We have an NDIS IM driver used for fault tolerance that we found out works ... > of its virtual adapter instances. ... > device gets plugged in our out, you simply talk to whichever miniport ... > of the present USB devices you prefer. ...
    (microsoft.public.development.device.drivers)
  • Re: NetBIOS Routing
    ... does the NDISWAN.sys is a 1-to-n MUX IM driver or a filter IM dirver? ... > What do you mean by the mux miniport is not used? ... > one virtual adapter at its upper edge and can talk to two ...
    (microsoft.public.development.device.drivers)
  • SMSC9118 NDIS ethernet driver, to connect LAN9115 directly to a PXA270 (no glue logic like cpld)
    ... I am trying to integrate in windows ce5.0 smsc driver for 911x family. ... adapter, then the pointer turns into a hour glass forever. ... ndisMInitializeAdapter: Miniport 0003B9C0, ... Miniport 0003B9C0, MiniBlock 0003B620, rc ...
    (microsoft.public.windowsce.embedded)
  • Re: Tcpip.sys bug: FTP Upload. MiniportHalt isnt called untill it has
    ... cancel packets on the miniport driver. ... driver, this bug would have been discovered long, long ago. ... handler and that does return all unsent packets to Ndis. ... hanging the PnP manager with device ...
    (microsoft.public.development.device.drivers)
  • Re: Tcpip.sys bug: FTP Upload. MiniportHalt isnt called untill it has
    ... NetEventQueryRemoveDevice query - instead, it can simply stop sending new ... call NdisCompletePnPEvenafter all packets that have been fowarded to ... cancel packets on the miniport driver. ... driver, this bug would have been discovered long, long ago. ...
    (microsoft.public.development.device.drivers)