Peter Stuge wrote:
On Wed, Aug 15, 2007 at 03:37:28PM +0700, Darmawan Salihun wrote:
What is required to get into the southbridge driver stack?
I'm not too sure. I think a "PCI bus filter driver", but that would be an overkill at the moment.
Why?
First off, I need to make at least a "safe" working code this weekend, for GSoC compliance ;-). I have a "working" code at the moment with direct I/O but without much of a "protection mechanism" in the kernel. It's an obvious danger, so I would like to add the DPC mechanism for the time being. Of course, venturing through the bus filter driver has been planned for sometime now. So, don't worry ;-).
The other problem is it's not well documented (maybe not documented at all :-/). I hardly found information about such a thing. Even, experts in Windows driver development says so.
I found some:
MSDN > Win32 and COM Development > Windows Driver Kit > Kernel-Mode Driver Architecture > Design Guide (check out Reference too) http://msdn2.microsoft.com/en-us/library/ms796245.aspx
OK. I'll read that. I might have come across that ;-).
really not feasible? It would definately be the cleanest way.
Yes, this is the cleanest way. However, we have to "attach" our driver entry point functions, including "AddDevice" function upon the first time the southbridge driver is installed.
Well we don't have to be the _only_ driver. I don't expect that to work well.
More like we make a driver for Intel, NVidia, AMD or Via chipset driver.
I think separate drivers is OK but only one is of course ideal.
The PnP manager will try to find the driver for the corresponding device the first time it's found after Windows installation and it seems once it has the driver we wouldn't be able to add our own "hook" into the driver stack. Unless we make the thing called "PCI bus filter driver" or other "Bus filter driver" as needed.
Right, this is what I thought seemed right.
But, the problem goes back to the beginning, it's not even documented.
There is talk about it. Google has a few bits of info too, as usual.
One link is Doron Holan's blog: (Technical lead for WDF) http://blogs.msdn.com/doronh/archive/2006/09/18/761325.aspx (here talk about class filter drivers)
OK. This one is on the list. I've been talking with Doron for a while in the OSR's mailing list for a while ;-).
And there is an example, look for "toaster", in the WDK/DDK.
It was introduced in this old newsletter it seems: http://www.microsoft.com/whdc/resources/news/newsletters/MHN_090803.htm
The WDK doesn't seem to be readily available without registration and possibly payment but there is a DDK for 2k<=SP4 XP<=SP1 and 2003<=SP1 immediately downloadable from:
http://www.microsoft.com/whdc/DevTools/ddk/default.mspx
..which probably works just fine also for later versions.
Have tested it for about a month now and seems to be just fine building Win XP device driver ;-).
There's documentation to go with the DDK too:
Have got it too.
There are also some interesting docs on the toaster:
http://www.microsoft.com/whdc/driver/foundation/toastersamp.mspx
http://download.microsoft.com/download/3/5/a/35a609bf-872a-4eb8-a0d6-a3e026f... Google HTML: http://209.85.135.104/search?q=cache:wRLrFGamtKYJ:download.microsoft.com/dow...
http://download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295... Google HTML: http://209.85.135.104/search?q=cache:H-hy11oPjsIJ:download.microsoft.com/dow...
The latter one is slides about driver distribution and installation. They have tools for that too:
http://www.microsoft.com/whdc/driver/install/difxtools.mspx http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx http://search.microsoft.com/results.aspx?mkt=en-US&setlang=en-US&q=d...
Thx for the links.
Another good resource is:
http://www.codeproject.com/system/driverdev4asp.asp
here part 4 in a driver writing tutorial series that goes into healthy depth about technicalities, and provides code.
Have a look.
Yeah, of course. Thanks for that. I've got two books in Windows driver development as well (Walter Oney's book and the other one about Win2K WDM driver development)
Regards, --Darmawan