We already established that taking a seminar is out for the OP. I didn’t suggest he take one, in fact.
No, no, a thousand times NO… This is PRECISELY what I’ve been saying is the wrong approach. This is exactly how to become a driver writer who should never be allowed to write a production driver for Windows.
One can certainly learn how to write C# .Net GUI apps by starting to hack on an example before you know what you’re doing, but you will take you AGES to learn how to write proper Windows drivers this way…
There are simply too many little details, “gottchas”, and issues for a new driver writer. Unless you know your OS fundamentals, you won’t even know what done LOOKS like. You run your driver… it works in your lab. Is it DONE? Just because it doesn’t blue screen does not mean it’s correct.
Or, let’s try: You send multiple asynchronous requests from your driver to driver X. MUST driver X complete those requests in order? Maybe in your experience driver X DOES complete them in order… but is what you’re observing the result of an architectural precept, a detail of implementation, or pure coincidence?
People who learn how to write Windows drivers by trial-and-error, without understanding architectural fundamentals, only have a partial picture… they don’t know what they don’t know.
To learn this, it doesn’t matter if you take a seminar, read some books, read The NT Insider, or read a bunch of papers on WHDC.
To quote my first post on this topic: http://www.osronline.com/ShowThread.cfm?link=185282#T11 – What you need to really understand are:
Thread and processes, key
data structures, how you get into and out of kernel mode, how requests are I/O
processed, IRQLs, I/O completion, synchronization. Of these you really need
to understand and internalize the flow of an I/O request from initiation at the
user application to completion. AND you need to understand IRQLs.
Only AFTER you know these things should you embark on steps (a), (b), and (c) – iterating through b and c, above.
So, OP… start reading. When you think you get it, start working your way through an example or two. But… NO HACKING ON SAMPLES until you understand the basics. Just like no driving your car until you know the traffic laws.
Peter
OSR