OSR USB FX-2 Learning Kit V2.0 out of stock

Hello everyone,

I would like to get myself started with Windows Driver Development. For professional reasons as well as out of personal curiosity.
First, I wanted to start with a Miniport NIC driver, but now I changed my mind, and want to begin with a USB driver written for/in the WDM. Instead of reading a book, I normally use MSDN as my learning source. And there it happened, that even Microsoft themselfs seems to endorse the usage of the “OSR USB FX-2 Learning Kit V2.0” to get started. Having a small sample USB device, which is (hopefully) designed in the way, specifically to help one understand USB driver development, without begin heavily optimized, seems like a great idea and is definetly worth investing money in.

Problem is: Where do I get one? Literally everywhere, it seems to be sold out.
Can someone help me find a store which still sells these devices? -Preferably new
Or can someone tell me if they are even getting produced nowadays?

Thank you in advance.

I want to begin with a USB driver written for/in the WDM.

No, you want to begin with KMDF. There is nothing to be gained by using 20th Century technology.

Problem is: Where do I get one? Literally everywhere, it seems to be sold out.

There are roughly a billion USB experimenter’s kits that could be used for this kind of exercise. Have you searched?

@Tim_Roberts said:

I want to begin with a USB driver written for/in the WDM.

No, you want to begin with KMDF. There is nothing to be gained by using 20th Century technology.

No, I want to begin with WDM. I know enough about both by now, to assure you, that you can let that be my decision.
If a newer technology is based on an older technology, I always choose to learn about the older one. At least in the private environment, and as often as I can defend that decision, also in the professional environment. The basics are everything.
That’s why I prefer to use MFC over .NET. Native Win32 over MFC. As well as countless other topics.

@Tim_Roberts said:

Problem is: Where do I get one? Literally everywhere, it seems to be sold out.

There are roughly a billion USB experimenter’s kits that could be used for this kind of exercise. Have you searched?

No, I did not do any research. When even Microsoft refers to this kit in the MSDN, I would strongly prefer to use this one. A lot of driver examples seem to be written specifically for that one as well. Your post unfortunately added nothing to my actual question, of where I could find the OSR USB FX-2 Learning Kit. I would be happy and grateful for any tips to where this one is for purchase.

@Allgaeuer said:
No, I want to begin with WDM.

As someone who has got used to KMDF I can assure you that you do not want to start with WDM.

If a newer technology is based on an older technology …

Your thinking is flawed. It has been said, with some justification, that there has NEVER been a WDM driver that handled PnP and power management correctly. KMDF does that for you. Their state machines have hundreds of states.

KMDF can in no way be called “new”. When KMDF was first released, Windows XP was the state of the art. Vista was still in beta. KMDF is 20 years old this year. It IS the established base.

If you prefer native Win32 over MFC, then you cannot call yourself a professional programmer. Professionals get the job done in the most efficient way possible. For kernel coding, that means KMDF.

IMHO WIN32 over MFC has a good case because MFC is so bad, but for a GUI, C# WinForms or WPF is so much better than either, there is no comparison. There probably has never been a correctly written MFC program. Only the oldest & simplest win32 GUIs every worked properly (think file manager, notepad etc.) and they are fragile.

In the case of WDM and KMDF. KMDF is clearly better.

Learning is one thing. But what you are asking about is like learning how to use the memory segment registers in 8086 real mode so you can access high memory in DOS. It is not hyperbolie to say that this is just as obsolete. And in the same way that the flat memory model used for x64 is not a ‘layer’ on top of the segmented memory model, using WDM is not somehow ‘going under’ KMDF to use some more fundamental technology

@Tim_Roberts said:

If a newer technology is based on an older technology …

Your thinking is flawed. It has been said, with some justification, that there has NEVER been a WDM driver that handled PnP and power management correctly. KMDF does that for you. Their state machines have hundreds of states.

Don’t you understand? I want to know how PnP and power management is handled. As well as other things. Even if that knowledge ends up to be super Windows-specific.

@Tim_Roberts said:
If you prefer native Win32 over MFC, then you cannot call yourself a professional programmer. Professionals get the job done in the most efficient way possible. For kernel coding, that means KMDF.

No technology or layer can be optimized for every possible use case. Now, I obviously don’t dare to say that I could get things done better than Microsoft does. Of course not. But the more I do myself and the deeper resp. lower I begin, the more I can optimize my solution for my specific use case. That is the professional aspect.
Apart from that, I am just way more interested in the basic concepts than in the fancy new technologies.

And about your comment whether I can call myself a professional programmer resp. developer: If my preference of native Win32 over MFC is enough for you to call that into question, then this eliminates the need for any discussion with you.
I call myself a professional. Also since I know that “the most efficient way” encompasses the time component, as well as the various different other quality characteristics of software.

@MBond2 said:
Learning is one thing. But what you are asking about is like learning how to use the memory segment registers in 8086 real mode so you can access high memory in DOS. It is not hyperbolie to say that this is just as obsolete. And in the same way that the flat memory model used for x64 is not a ‘layer’ on top of the segmented memory model, using WDM is not somehow ‘going under’ KMDF to use some more fundamental technology

Thank you for the short insight. I will keep your words in mind and see how far I get with WDM. Should it become to hardware specific or require too much knowledge of outdated processor specifics, I might indeed change to KMDF.

Thanks for your answers and considerations, but I would like to come back to my original question. Does someone know how I can get my hands on a OSR USB FX-2 Learning Kit V2.0? :smiley:

@Allgaeuer said:

@Tim_Roberts said:

If a newer technology is based on an older technology …

Your thinking is flawed. It has been said, with some justification, that there has NEVER been a WDM driver that handled PnP and power management correctly. KMDF does that for you. Their state machines have hundreds of states.

Don’t you understand? I want to know how PnP and power management is handled. As well as other things. Even if that knowledge ends up to be super Windows-specific.

In 1997 Microsoft announce WDM and introduced PnP and Power Management for Windows. Over the next 5 years, a large number of samples were offered, it turned out that none of them worked correctly, so in 2002 the had an invitation only presentation about what was going to become KMDF. It was 2007 before the WDF book was published.

This 10 years included a huge amount of work trying make WDM work, and then trying to refine it for all the nasty edge conditions that were found. From that first invitation only briefing there were about 90 of us (including Tim Roberts) who did a lot of reviewing and commenting on the documentation and code that was coming out. The total amount of effort to make KMDF work and handle all those nasty problems that WDM presented was over100 man years.

It is great to say you want to understand the lower layers, but you won’t live long enough to reproduce the work that has already gone into this effort. If something in KMDF’s PnP or Power Handling is causing a problem for your work, that is the time to ask why things work and how to get around it.

Don Burn

@Allgaeuer said:
Don’t you understand?

I think Tim knows a little bit about Windows drivers. He saved me with the bug in the WDF common buffer problem of memory alignment,

For the OSR Fx2 kit then why not build your own?

I think that broadly we do understand what you are after, but that you haven’t quite understood what we are saying.

WDM does not have constructs that are processor specific or rely on outdated hardware technology per se. WDM itself is the outdated and obsolete technology. You should think about it in terms that the WDM API (DDI) is provided for compatibility, in the same way that outdated processor modes are still supported too, but the core of the CPU no longer works that way. yes, I am skipping a lot for the sake of simplicity

Sometimes newer concepts / technology is built on top of older or simpler ones. To use a math example, in a general sense, tensor operations are extensions from vector operations which are extensions from scalar operations. And all of those are simplest in the set of real numbers, but become more complex in other number sets - perversely harder in the simpler in the more ‘basic’ integer, whole and natural number sets, but easier in the increasing degrees of complex number sets

It is also true that MFC ‘builds’ on top of WIN32. I think I have made my distain for the quality of that framework clear. And in many senses .NET Winforms does build on Win32 and GDI / GDI+. But you would be hard pressed to say the WPF is a related to that API - and both now have common multi-platform implementations within .NET. So it is no longer clear that any of these ‘layers’ rely on any of the others.

Outmoding is rare, but that’s exactly what we are telling you has happened

Does someone know how I can get my hands on a OSR USB FX-2 Learning Kit V2.0?

I’d suggest you send an email to us here at OSR… cuz, you know, we MAKE them.

We basically only make these for use in our seminars these days, but if you’d like to buy one (or more) send us an email indicating how many you want, and where you live, and we’ll give you a quote. The easiest/fastest email to use would be the “seminars” alias (@osr.com) and somebody from the seminar team will be able to help you.