You need the WDK and Walter Oneys "programming the windows driver model" Then you need to look at the sameples on the WDK, and then pick one that best suits your needs, ot alternatively start from scratch. The samples are ful of bugs. :) Yep, really nasty bugs. Even Microsoft find it hard to write really good drivers for Windows. Oneys Samples are better then. If its a specific technology, like SCSI, audio, or network, then you are pretty close to being screwed, there is almost no decent documentation for theese, all you have for these is the WDK, and its a vast, unwieldy pile of information to manage and very hard to really get to the bottom of why certain things are done a certain way. KMDF (WDM wrapper)? Might help alot, if you want to do basic stuff. At least PnP and Power handling wont be your responsibility, but you might find it limitiing at some stage. Dont know, never used it. Then you need to get to know windbg. :) Oh what fun! No UI, almost totally command line driven... You need it to debug your driver, bit also understand crashes, so you need to become very good at crash analysis, which means you have to learn assembly aswell. (Fortunately its C code assembly, which is not too bad to read. Tyr C++ with SEH if you want really tortured assembly. :) ) Then you need to get to know the usual websites. OSR online, crashdumpanalysis.org, and so on Give yourself about 1 to 3 years to be able to even get a driver working 100%, let alone become an expert in the kernel. That will take over 5 years most likely, till then you are a novice. At 10 years plus experience you are starting to get pretty good at it though. :)
Dr D Evans "The whole idea that carbon dioxide is the main cause of the recent global warming is based on a guess that was proved false by empirical evidence during the 1990s" financialpost