what would you recommend for a resource on learning to program drivers. i am working my way through Programming the Microsoft Windows Driver Model, but i was wondering if any of the examples are vista compatible. additionally, the book is more of a reference of the kernel functions so far. is their a resource that will take the beginner by the hand in making a more intermidiate wdm driver? i have done the basic "hello world" driver.
thanks
I would strongly recommend starting with KMDF. It is dramatically easier to learn than WDM but still requires you to learn the fundamentals of windows kernel development. Also just hanging out in the OsrOnline fourm is a great way to learn.
I'm going through the book "Developing Drivers with the Windows Driver Foundation" - which seems to present things in a logical order for new developers, while going well into real world solutions with tips on how to handle them. From Amazon
I actually searched a while for the example code that is mentioned in the WDK documentation (but not linked there). As I found it, it actually became a great help. It's not even hidden, it it just below the "src"-directory that I mistook for being the src of Windows DDK. (Just in case someone else is searching for these examples.)
Well that and examples from rootkit.com. It's often the sneaky ones that understand such matters best.
Update: I found this tutorial referenced somewhere on stackoverflow. It is a nice slow and well written introduction. (Obviously I am searching and learning myself currently, daily improvements are intentional.)
And it probably is useful to link to a question of mine where the topic of "communicating with your driver" is discussed.
I learned from the help file that came with the DDK, and (importantly) from the sample drivers (source code) which came with the DDK: look for sample drivers of the same type of driver (e.g. network driver, video driver, whatever) as the kind you're interested in.
Not really answering your question, but as you learn to write drivers, don't forget to regularly check out Doron Holan's blog. His job is to improve the driver development process, and he discusses a lot of common pitfalls and subtleties of driver programming.