I have finally found some time to rewrite a filter driver for a pci expansion
system. Given the product I have a requirment to increase the resource
windows of buses that are upstream of my product, because the system may be
hot plugged, some BIOSes don't support us, and some of the devices
downstream (third party) may require more then the default 64MB/64MB/4K.
My driver acts as an upper filter to PCI.SYS. I would like to modify the
PCI config space of the upstream buses before PCI.SYS reads them. The
information I am looking for is at what point in the process does PCI.sys
read the config space before resource arbitration to decide what resources to
allocate? I will figure it out through expirimentation, but if someone out
there has some street knowledge, or can point me to some relevant
documentaion in this area that could save me some time I would appreciate it.
The driver I am replacing makes modifications in the
IRP_MN_FILTER_RESOURCE_REQUIREMENTS pnp IRP, this is a direction I could go
as I have a mostly working example, it just seems like modifying the config
space and letting PCI.sys do its job is an cleaner route to take. My worry
is that I have somewhat of a chicken and egg dilema as I need pci.sys to make
modifications to the config space, but I don't want to make the modifications
too late. I want to work within the accepted practices of the OS as I want
the driver to support Vista and 64 bit versions as well without too many
modifications.
Thanks,
Brian