NDIS Intermediate MUX 1:N driver

I found this post http://www.osronline.com/showthread.cfm?link=142702
and I was wondering if someone still has the describe driver, which he can send to me or publish it somewhere.

Shalom Amir,
the MSFT example is very clear and good stating point:

there are two folders:
driver - is the driver (mux.sys)
notifyob - is the Notify Object , the com related to installtion and updates…etc

Yes, unfortunately it’s an N:1 MUX, and I’m looking for a 1:N MUX example that will jump start me faster.

Unfortunately, the folks at Microsoft have requested that I not share the N:1 MUX sample anymore. Maor is correct in that the sample, though a N:1 MUX, is a good starting point. If you understand the basics behind the Notify Object and a N:1 MUX, the transition to a N:1 MUX is a relatively smooth path (to be sure, there are some speed bumps). I am more then willing to help you in the transition, to the best of my ability.


The 1:N Mux sample from Microsoft is an NDIS 5.1 version and has some binding problems. We are currently working on an NDIS 6.x version. The Notify Object has turned out to be the most problematic in how things get bound and is not a simple or smooth path to convert.


Sorry about this, but there is a “bug” in the sample I distributed. I caught this early on in the development process and neglected (as in forgot) to incorporate the changes into the sample code. In MiniportSend/Query Information if the information buffer is NULL the sample code treats the circumstance as an error, instead the number of bytes needed should be returned (with status set to NDIS_STATUS_BUFFER_TOO_SHORT). I apologize for this oversight on my part.

I strongly suspect that if the above changes are made you will find that the issue with NotifyObject is rectified. If not let me know, my project was a NDIS 5.1 project but I’m willing to look into NDIS 6.0…


The NDIS 5.1 MUX sample I used was from Microsoft that I got a couple of years ago and there are binding problems where the protocol bindings do not always end up the way you want them. We decided not to do an NDIS 5.1 MUX and just do an NDIS 6.x MUX. The NDIS 6.x MUX has even more problems with unpredictable protocol bindings when the MUX is installed. We have a case open with Microsoft to solve these problems. I have found the Microsoft NDIS people are good to work with on solving problems.

Larry C


Sounds like we got the same sample code at roughly the same time. Unfortunately, my client elected to go with the NDIS 5.1 MUX only. I got the NDIS 6.x code to build but had to leave it at that. Inasmuch as we are dealing with the same sample code (as a base), it might behoove you to check the NDIS 6.x equivalent of MiniportSend/Query Information to make sure status is being set to NDIS_STATUS_BUFFER_TOO_SHORT and number of bytes is returned as outlined above. Probably the corrections have been implemented in your code, but doesn’t hurt to check.

Definitely agree with you on your assessment of the Microsoft NDIS personnel; extremely knowledgeable, and patient.

Good luck

It turned out that we were applying the bindings in the wrong place and not enumerating all the bindings when necessary. So now the bindings are correct but we have a “hang” problem that we’re working on.

Larry C