Fog Creek Software
Discussion Board




Device driver development

Can anyone suggest good book or online links which explain WindowsXP device driver architecture and especially how to develop device driver for USB device, I need this ASAP!

Vijay
Wednesday, August 18, 2004

http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=51759

.
Wednesday, August 18, 2004

FTDI has very nice USB hardware and software driver suites.  www.ftdi.com.

And, Cypress Simiconductor also manufactures a USB interface board.

Otherwise, I think you are in for a world of hurt.  The server side USB code has LOTS of 'hooks' that I have not seen very well documented.

Oh, Jan Axelsons "USB Complete" may help you out.

AllanL5
Wednesday, August 18, 2004

If you've never written a Windows driver before, it's going to take you a while to get up to speed, especially with the USB device stack.

You really have 3 options, (1) Learn the DDK, (2) Learn CompuWare's DriverWorks C++ environment, (3) Invest in a user-mode driver toolkit.

You'll need an MSDN subscription to get the DDK (a requirement for #1 and #2).  For #2, you'll need to fork out the $$$ for CompuWare's DriverSuite.  For #3, you'll need to buy the toolkit.

#1 is the hardest
#2 isn't as hard, especially because it gives you the ability to generate drivers that work on multiple versions of Windows.
#3 is relatively easy, but the drivers tend to be slower because of the context switching overhead.

#3 is probably the best approach for a first time driver writer.

For a user-mode toolkit, look at:
http://www.jungo.com/wdusb.html

Myron A. Semack
Wednesday, August 18, 2004

Ah, no, but I've still the the OpenVMS version 5 Guide to Writing Device Drivers on a shelf. Would that help? They say that Windows NT was a direct descendant of VMS and XP is the child of NT, so how far off could it be?

old_timer
Wednesday, August 18, 2004

Myron covered most of it. You can also get a DDK CD from Microsoft without a MSDN subscription for ~$200.

The approach you take depends on the class of USB driver. If you're writing a driver for a common device-type then Windows may have a mini-driver framework that handles most of the device-independent stuff and your job is to integrate your device driver into that framework.

There's a lot of background information and links at http://www.microsoft.com/whdc/devtools/ddk/default.mspx

_
Wednesday, August 18, 2004

I have "Programming the MS Windows Driver Model" by Walter Oney.

Since I am not doing any drivers, I can't say how good it is.
I have it only because it has a lot Win32 code (no .Net) and
I bought all Win32 books I could find. I went  trough only
few chapters this spring and I liked what I saw, just from
the point of view of someone trying to understand Wind32
at various levels.

Printed by MS Press, see it on Amazon:
http://www.amazon.com/exec/obidos/tg/detail/-/0735618038/qid=1092872518/sr=1-1/ref=sr_1_1/103-9846297-1966225?v=glance&s=books

VPC
Wednesday, August 18, 2004

muppet, you offline?

Alex
Thursday, August 19, 2004

I forgot to say, IT IS FOR CONTRACT!

Vijay
Thursday, August 19, 2004

The kind folks who answer these requests seriously, please bear in mind this is just a long series of trolls. (Funny ones too)

Alex
Thursday, August 19, 2004

There was an article about USB drivers in Dr. Dobbs recently, if I recall correctly. Might be a good place to start.

Michael Eisenberg
Thursday, August 19, 2004

*  Recent Topics

*  Fog Creek Home