Fog Creek Software
g
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