Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > NDIS 6.0 MUX Intermediate driver

Reply
Thread Tools Display Modes

NDIS 6.0 MUX Intermediate driver

 
 
imanandr
Guest
Posts: n/a

 
      11-20-2006
Hi -
It appears that NDIS Intermediate drivers are deprecated in 6.0 and the
recommended way to implement similar functionality is to use a "Filter
driver" (as per Driver Compatibility for Windows Vista document). I would
like to know if there are any limitations if Intermediate drivers are
convereted to Filter drivers. In particular I would like to know if it would
be possible to implement something like a Layer 2 bridge functionality (below
TCPIP stack) using a Filter driver.

I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample" in the WDK.
If Intermediate drivers are deprecated, why is it given as a sample? What am
I missing here? What is the difference between MUX for NDIS 5.1 and MUX for
6.0?

Any help is appreciated.

Thanks,
Anand
 
Reply With Quote
 
 
 
 
Thomas F. Divine [MVP]
Guest
Posts: n/a

 
      11-20-2006
"imanandr" <> wrote in message
news:5CF40F8C-D88F-4778-8F72-...
> Hi -
> It appears that NDIS Intermediate drivers are deprecated in 6.0 and the
> recommended way to implement similar functionality is to use a "Filter
> driver" (as per Driver Compatibility for Windows Vista document). I would
> like to know if there are any limitations if Intermediate drivers are
> convereted to Filter drivers. In particular I would like to know if it
> would
> be possible to implement something like a Layer 2 bridge functionality
> (below
> TCPIP stack) using a Filter driver.
>
> I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample" in the
> WDK.
> If Intermediate drivers are deprecated, why is it given as a sample? What
> am
> I missing here? What is the difference between MUX for NDIS 5.1 and MUX
> for
> 6.0?
>

[PCAUSA] Probably a NDIS 6 MUX driver (1 virtual miniport exposed to TCPIP,
two or more "real" NICs bound below your driver) would be the best approach
for a network bridge if you must do the bridging work yourself.

Of course, you could also use the built-in network bridge - which is a 1:N
MUX. You could install a NDIS 6 LWF in the path below the system bridge NDIS
MUX driver but above the actual NIC miniports. This was you can filter
packets entering and leaving the system, but let the system MUX driver do
the actual bridging work for you.

You probably need to do a little experimentation using the WDK sample
drivers to get confortable with the architecture.

Good luck,

Thomas F. Divine
http://www.pcausa.com


> Any help is appreciated.
>
> Thanks,
> Anand


 
Reply With Quote
 
imanandr
Guest
Posts: n/a

 
      11-20-2006


"Thomas F. Divine [MVP]" wrote:

> "imanandr" <> wrote in message
> news:5CF40F8C-D88F-4778-8F72-...
> > Hi -
> > It appears that NDIS Intermediate drivers are deprecated in 6.0 and the
> > recommended way to implement similar functionality is to use a "Filter
> > driver" (as per Driver Compatibility for Windows Vista document). I would
> > like to know if there are any limitations if Intermediate drivers are
> > convereted to Filter drivers. In particular I would like to know if it
> > would
> > be possible to implement something like a Layer 2 bridge functionality
> > (below
> > TCPIP stack) using a Filter driver.
> >
> > I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample" in the
> > WDK.
> > If Intermediate drivers are deprecated, why is it given as a sample? What
> > am
> > I missing here? What is the difference between MUX for NDIS 5.1 and MUX
> > for
> > 6.0?
> >

> [PCAUSA] Probably a NDIS 6 MUX driver (1 virtual miniport exposed to TCPIP,
> two or more "real" NICs bound below your driver) would be the best approach
> for a network bridge if you must do the bridging work yourself.
>
> Of course, you could also use the built-in network bridge - which is a 1:N
> MUX. You could install a NDIS 6 LWF in the path below the system bridge NDIS
> MUX driver but above the actual NIC miniports. This was you can filter
> packets entering and leaving the system, but let the system MUX driver do
> the actual bridging work for you.
>
> You probably need to do a little experimentation using the WDK sample
> drivers to get confortable with the architecture.
>
> Good luck,
>
> Thomas F. Divine
> http://www.pcausa.com
>
>
> > Any help is appreciated.
> >
> > Thanks,
> > Anand

>
>

 
Reply With Quote
 
imanandr
Guest
Posts: n/a

 
      11-20-2006
Sorry my last post did not get through. So I'm posting again.

Thanks for the response Thomas. Is the MUX NDIS 6.0 driver an Intermediate
driver? If so, isn't it supposed to be deprecated? If not, how is it
different from NDIS 5.x MUX and are there any limitations in MUX 6 (compared
to MUX 5.x)?

Is it possible to receive packets from one interface and send them on
another in the NDIS 6 LWF (with appropriate modifications)? Doe NDIS 6
impose any limitations for doing this?

Thanks,
Anand


"imanandr" wrote:

>
>
> "Thomas F. Divine [MVP]" wrote:
>
> > "imanandr" <> wrote in message
> > news:5CF40F8C-D88F-4778-8F72-...
> > > Hi -
> > > It appears that NDIS Intermediate drivers are deprecated in 6.0 and the
> > > recommended way to implement similar functionality is to use a "Filter
> > > driver" (as per Driver Compatibility for Windows Vista document). I would
> > > like to know if there are any limitations if Intermediate drivers are
> > > convereted to Filter drivers. In particular I would like to know if it
> > > would
> > > be possible to implement something like a Layer 2 bridge functionality
> > > (below
> > > TCPIP stack) using a Filter driver.
> > >
> > > I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample" in the
> > > WDK.
> > > If Intermediate drivers are deprecated, why is it given as a sample? What
> > > am
> > > I missing here? What is the difference between MUX for NDIS 5.1 and MUX
> > > for
> > > 6.0?
> > >

> > [PCAUSA] Probably a NDIS 6 MUX driver (1 virtual miniport exposed to TCPIP,
> > two or more "real" NICs bound below your driver) would be the best approach
> > for a network bridge if you must do the bridging work yourself.
> >
> > Of course, you could also use the built-in network bridge - which is a 1:N
> > MUX. You could install a NDIS 6 LWF in the path below the system bridge NDIS
> > MUX driver but above the actual NIC miniports. This was you can filter
> > packets entering and leaving the system, but let the system MUX driver do
> > the actual bridging work for you.
> >
> > You probably need to do a little experimentation using the WDK sample
> > drivers to get confortable with the architecture.
> >
> > Good luck,
> >
> > Thomas F. Divine
> > http://www.pcausa.com
> >
> >
> > > Any help is appreciated.
> > >
> > > Thanks,
> > > Anand

> >
> >

 
Reply With Quote
 
Thomas F. Divine [MVP]
Guest
Posts: n/a

 
      11-21-2006
"imanandr" <> wrote in message
news:354B6C81-DC6B-46A7-A5D8-...
> Sorry my last post did not get through. So I'm posting again.
>
> Thanks for the response Thomas. Is the MUX NDIS 6.0 driver an
> Intermediate
> driver? If so, isn't it supposed to be deprecated? If not, how is it
> different from NDIS 5.x MUX and are there any limitations in MUX 6
> (compared
> to MUX 5.x)?
>

For 1:1 NDIS Filter:
NDIS 5 - Use NDIS 5 IM Filter Driver (Deprecated on Vista)
NDIS 6 - Use NDIS 6 Lighweight Filter Driver

For 1:N or N:1 Filter:
NDIS 5 - Use NDIS 5 MUX IM Driver
NDIS 6 - Use NDIS 6 MUX IM Driver

Actually, I would call _all_ of these "NDIS Intermediate" drivers myself.

> Is it possible to receive packets from one interface and send them on
> another in the NDIS 6 LWF (with appropriate modifications)? Doe NDIS 6
> impose any limitations for doing this?


You can do whatever you want in a "modifying" LWF...

Thomas F. Divine
http://www.pcausa.com


>
> Thanks,
> Anand
>
>
> "imanandr" wrote:
>
>>
>>
>> "Thomas F. Divine [MVP]" wrote:
>>
>> > "imanandr" <> wrote in message
>> > news:5CF40F8C-D88F-4778-8F72-...
>> > > Hi -
>> > > It appears that NDIS Intermediate drivers are deprecated in 6.0
>> > > and the
>> > > recommended way to implement similar functionality is to use a
>> > > "Filter
>> > > driver" (as per Driver Compatibility for Windows Vista document). I
>> > > would
>> > > like to know if there are any limitations if Intermediate drivers are
>> > > convereted to Filter drivers. In particular I would like to know if
>> > > it
>> > > would
>> > > be possible to implement something like a Layer 2 bridge
>> > > functionality
>> > > (below
>> > > TCPIP stack) using a Filter driver.
>> > >
>> > > I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample" in
>> > > the
>> > > WDK.
>> > > If Intermediate drivers are deprecated, why is it given as a sample?
>> > > What
>> > > am
>> > > I missing here? What is the difference between MUX for NDIS 5.1 and
>> > > MUX
>> > > for
>> > > 6.0?
>> > >
>> > [PCAUSA] Probably a NDIS 6 MUX driver (1 virtual miniport exposed to
>> > TCPIP,
>> > two or more "real" NICs bound below your driver) would be the best
>> > approach
>> > for a network bridge if you must do the bridging work yourself.
>> >
>> > Of course, you could also use the built-in network bridge - which is a
>> > 1:N
>> > MUX. You could install a NDIS 6 LWF in the path below the system bridge
>> > NDIS
>> > MUX driver but above the actual NIC miniports. This was you can filter
>> > packets entering and leaving the system, but let the system MUX driver
>> > do
>> > the actual bridging work for you.
>> >
>> > You probably need to do a little experimentation using the WDK sample
>> > drivers to get confortable with the architecture.
>> >
>> > Good luck,
>> >
>> > Thomas F. Divine
>> > http://www.pcausa.com
>> >
>> >
>> > > Any help is appreciated.
>> > >
>> > > Thanks,
>> > > Anand
>> >
>> >


 
Reply With Quote
 
soviet_bloke@hotmail.com
Guest
Posts: n/a

 
      11-21-2006
Thomas,

> You can do whatever you want in a "modifying" LWF...


I haven't yet tried LWFs, so that everything I know on the subject in
so far is based solely upon MSDN documentation. Judging from MSDN
description, LWFs seem to be, from the programmer's perspective, much
more logical and simple than "converntional" NDIS IM filters (i.e.
deprecated ones) that never had a reputation of being trouble-free.

Do you know of any LWF-related "issues" that may be not so obvios to
someone who just read MSDN description, without actually experimenting
with them?

Anton Bassov

Thomas F. Divine [MVP] wrote:
> "imanandr" <> wrote in message
> news:354B6C81-DC6B-46A7-A5D8-...
> > Sorry my last post did not get through. So I'm posting again.
> >
> > Thanks for the response Thomas. Is the MUX NDIS 6.0 driver an
> > Intermediate
> > driver? If so, isn't it supposed to be deprecated? If not, how is it
> > different from NDIS 5.x MUX and are there any limitations in MUX 6
> > (compared
> > to MUX 5.x)?
> >

> For 1:1 NDIS Filter:
> NDIS 5 - Use NDIS 5 IM Filter Driver (Deprecated on Vista)
> NDIS 6 - Use NDIS 6 Lighweight Filter Driver
>
> For 1:N or N:1 Filter:
> NDIS 5 - Use NDIS 5 MUX IM Driver
> NDIS 6 - Use NDIS 6 MUX IM Driver
>
> Actually, I would call _all_ of these "NDIS Intermediate" drivers myself.
>
> > Is it possible to receive packets from one interface and send them on
> > another in the NDIS 6 LWF (with appropriate modifications)? Doe NDIS 6
> > impose any limitations for doing this?

>
> You can do whatever you want in a "modifying" LWF...
>
> Thomas F. Divine
> http://www.pcausa.com
>
>
> >
> > Thanks,
> > Anand
> >
> >
> > "imanandr" wrote:
> >
> >>
> >>
> >> "Thomas F. Divine [MVP]" wrote:
> >>
> >> > "imanandr" <> wrote in message
> >> > news:5CF40F8C-D88F-4778-8F72-...
> >> > > Hi -
> >> > > It appears that NDIS Intermediate drivers are deprecated in 6.0
> >> > > and the
> >> > > recommended way to implement similar functionality is to use a
> >> > > "Filter
> >> > > driver" (as per Driver Compatibility for Windows Vista document). I
> >> > > would
> >> > > like to know if there are any limitations if Intermediate drivers are
> >> > > convereted to Filter drivers. In particular I would like to know if
> >> > > it
> >> > > would
> >> > > be possible to implement something like a Layer 2 bridge
> >> > > functionality
> >> > > (below
> >> > > TCPIP stack) using a Filter driver.
> >> > >
> >> > > I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample" in
> >> > > the
> >> > > WDK.
> >> > > If Intermediate drivers are deprecated, why is it given as a sample?
> >> > > What
> >> > > am
> >> > > I missing here? What is the difference between MUX for NDIS 5.1 and
> >> > > MUX
> >> > > for
> >> > > 6.0?
> >> > >
> >> > [PCAUSA] Probably a NDIS 6 MUX driver (1 virtual miniport exposed to
> >> > TCPIP,
> >> > two or more "real" NICs bound below your driver) would be the best
> >> > approach
> >> > for a network bridge if you must do the bridging work yourself.
> >> >
> >> > Of course, you could also use the built-in network bridge - which is a
> >> > 1:N
> >> > MUX. You could install a NDIS 6 LWF in the path below the system bridge
> >> > NDIS
> >> > MUX driver but above the actual NIC miniports. This was you can filter
> >> > packets entering and leaving the system, but let the system MUX driver
> >> > do
> >> > the actual bridging work for you.
> >> >
> >> > You probably need to do a little experimentation using the WDK sample
> >> > drivers to get confortable with the architecture.
> >> >
> >> > Good luck,
> >> >
> >> > Thomas F. Divine
> >> > http://www.pcausa.com
> >> >
> >> >
> >> > > Any help is appreciated.
> >> > >
> >> > > Thanks,
> >> > > Anand
> >> >
> >> >


 
Reply With Quote
 
Thomas F. Divine [MVP]
Guest
Posts: n/a

 
      11-21-2006

<> wrote in message
news: oups.com...
> Thomas,
>
>> You can do whatever you want in a "modifying" LWF...

>
> I haven't yet tried LWFs, so that everything I know on the subject in
> so far is based solely upon MSDN documentation. Judging from MSDN
> description, LWFs seem to be, from the programmer's perspective, much
> more logical and simple than "converntional" NDIS IM filters (i.e.
> deprecated ones) that never had a reputation of being trouble-free.
>
> Do you know of any LWF-related "issues" that may be not so obvios to
> someone who just read MSDN description, without actually experimenting
> with them?
>

[PCAUSA] In US I would say: "They are the same - only different."

The PCAGizmo tool is a NDIS OID "sniffer". See the URL:

http://www.pcausa.com/Utilities/PCAGizmo/PCAGizmo.htm

I wrote the NDIS 5 IM filter and the NDIS 6 LWF monitoring driver in
parallel to exploit the common logical flow between the two versions. As a
result, both drivers have (mostly):

1.) Common module file names.
2.) Similar intra-module source code layout. Handlers for upper-edge at top
of the module ("miniport edge") and for lower-edge at the bottom of the
module ("protocol edge").
3.) Similar function and structure names - although passed parameters are
naturally different.
4.) A (somewhat) common support library that is shared between the two.

Not so much commonality that one could use common code and pre-processor
switches to make NDIS 5 or NDIS 6 - but a helpful exercise for an old man
like me.

There are, of course, exceptions for some functions that are exclusive to
one or the other.

PCAGizmo uses a common installer and a common user-mode application for NDIS
5 or NDIS 6.

So, to me they are, in the final analysis, "the same - only different".

Of course, "The devil is in the details."

Hope this is helpful.

Thomas



> Anton Bassov
>
> Thomas F. Divine [MVP] wrote:
>> "imanandr" <> wrote in message
>> news:354B6C81-DC6B-46A7-A5D8-...
>> > Sorry my last post did not get through. So I'm posting again.
>> >
>> > Thanks for the response Thomas. Is the MUX NDIS 6.0 driver an
>> > Intermediate
>> > driver? If so, isn't it supposed to be deprecated? If not, how is it
>> > different from NDIS 5.x MUX and are there any limitations in MUX 6
>> > (compared
>> > to MUX 5.x)?
>> >

>> For 1:1 NDIS Filter:
>> NDIS 5 - Use NDIS 5 IM Filter Driver (Deprecated on Vista)
>> NDIS 6 - Use NDIS 6 Lighweight Filter Driver
>>
>> For 1:N or N:1 Filter:
>> NDIS 5 - Use NDIS 5 MUX IM Driver
>> NDIS 6 - Use NDIS 6 MUX IM Driver
>>
>> Actually, I would call _all_ of these "NDIS Intermediate" drivers myself.
>>
>> > Is it possible to receive packets from one interface and send them on
>> > another in the NDIS 6 LWF (with appropriate modifications)? Doe NDIS 6
>> > impose any limitations for doing this?

>>
>> You can do whatever you want in a "modifying" LWF...
>>
>> Thomas F. Divine
>> http://www.pcausa.com
>>
>>
>> >
>> > Thanks,
>> > Anand
>> >
>> >
>> > "imanandr" wrote:
>> >
>> >>
>> >>
>> >> "Thomas F. Divine [MVP]" wrote:
>> >>
>> >> > "imanandr" <> wrote in message
>> >> > news:5CF40F8C-D88F-4778-8F72-...
>> >> > > Hi -
>> >> > > It appears that NDIS Intermediate drivers are deprecated in 6.0
>> >> > > and the
>> >> > > recommended way to implement similar functionality is to use a
>> >> > > "Filter
>> >> > > driver" (as per Driver Compatibility for Windows Vista document).
>> >> > > I
>> >> > > would
>> >> > > like to know if there are any limitations if Intermediate drivers
>> >> > > are
>> >> > > convereted to Filter drivers. In particular I would like to know
>> >> > > if
>> >> > > it
>> >> > > would
>> >> > > be possible to implement something like a Layer 2 bridge
>> >> > > functionality
>> >> > > (below
>> >> > > TCPIP stack) using a Filter driver.
>> >> > >
>> >> > > I also see a "Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample"
>> >> > > in
>> >> > > the
>> >> > > WDK.
>> >> > > If Intermediate drivers are deprecated, why is it given as a
>> >> > > sample?
>> >> > > What
>> >> > > am
>> >> > > I missing here? What is the difference between MUX for NDIS 5.1
>> >> > > and
>> >> > > MUX
>> >> > > for
>> >> > > 6.0?
>> >> > >
>> >> > [PCAUSA] Probably a NDIS 6 MUX driver (1 virtual miniport exposed to
>> >> > TCPIP,
>> >> > two or more "real" NICs bound below your driver) would be the best
>> >> > approach
>> >> > for a network bridge if you must do the bridging work yourself.
>> >> >
>> >> > Of course, you could also use the built-in network bridge - which is
>> >> > a
>> >> > 1:N
>> >> > MUX. You could install a NDIS 6 LWF in the path below the system
>> >> > bridge
>> >> > NDIS
>> >> > MUX driver but above the actual NIC miniports. This was you can
>> >> > filter
>> >> > packets entering and leaving the system, but let the system MUX
>> >> > driver
>> >> > do
>> >> > the actual bridging work for you.
>> >> >
>> >> > You probably need to do a little experimentation using the WDK
>> >> > sample
>> >> > drivers to get confortable with the architecture.
>> >> >
>> >> > Good luck,
>> >> >
>> >> > Thomas F. Divine
>> >> > http://www.pcausa.com
>> >> >
>> >> >
>> >> > > Any help is appreciated.
>> >> > >
>> >> > > Thanks,
>> >> > > Anand
>> >> >
>> >> >

>


 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      11-22-2006
> more logical and simple than "converntional" NDIS IM filters (i.e.
> deprecated ones) that never had a reputation of being trouble-free.


On NT - they were trouble-free if you follow PASSTHRU sample.

On WinCE - yes, not trouble-free :-)

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation

http://www.storagecraft.com

 
Reply With Quote
 
soviet_bloke@hotmail.com
Guest
Posts: n/a

 
      11-22-2006
Maxim,

> > more logical and simple than "converntional" NDIS IM filters (i.e.
> > deprecated ones) that never had a reputation of being trouble-free.

>
> On NT - they were trouble-free if you follow PASSTHRU sample.


I am afraid you are much too optimistic.....

You should have continued your statement like " as long as your
underlying adapter is physical, i.e the media is Ethernet, Token Ring
or FDDI" . However, if your underlying adapter is virtual, PASSTHRU
sample is not trouble-free at all....

Look at what its ReadMe says:

[begin quote]

This driver is a good example of a driver that exposes a virtual
adapter based on a binding to a real physical adapter. It is not a good
representative of another class of IM drivers whose underlying physical
adapter is not a conventional NIC device, but have to follow IM driver
model mainly because the indications from the driver to the upper
layers are not happening in the context of a DPC.

[end quote]


Therefore, things are not necessarily that easy.....

Anton Bassov



Maxim S. Shatskih wrote:
> > more logical and simple than "converntional" NDIS IM filters (i.e.
> > deprecated ones) that never had a reputation of being trouble-free.

>
> On NT - they were trouble-free if you follow PASSTHRU sample.
>
> On WinCE - yes, not trouble-free :-)
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
>
> http://www.storagecraft.com


 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
NDIS Intermediate Driver for 802.11 Ganesan Windows Vista Drivers 10 10-11-2004 02:02 AM
NDIS Intermediate Driver for 802.11 Ganesan Windows Vista Drivers 11 10-05-2004 01:14 AM
NDIS Intermediate driver for CE Jeff Ayers Windows Vista Drivers 1 09-04-2003 09:05 PM
NDIS Intermediate Driver. Bill Tang Windows Vista Drivers 1 07-15-2003 04:48 AM
Re: NDIS Intermediate Driver. Thomas F. Divine Windows Vista Drivers 0 07-14-2003 04:00 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59