Updating PCI/PCI Express configuration values for PCI/PCI Express bridge

Updating PCI/PCI Express configuration values for PCI/PCI Express bridge

Post by Alex » Mon, 19 Nov 2007 14:57:14


Hi

I wrote message couple days before but i didn't receive any answer.
I'll try to get more details for the problem.

I'm writing application and driver for PCI/PCI Express extender (like
this one: http://www.yqcomputer.com/ ;http://
www.amfeltec.com/index.php?id=1&subid=6>). The extender is used for
testing/debugging PCI/PCI Express cards.
The application is execute IOCTL call to my driver that reads PCI/PCI
express configuration registers (PCI_COMMON_CONFIG structure) of
tested card (there is no connection between my driver and driver of
tested card). Than, the user can switch off the extender and remove
the tested card from the extender. After this, the user can put back
tested card and restore PCI/PCI Express configuration register using
my application by executing call into my driver. At this point, the
user can use the tested card as before.

I have version of my application/driver under Windows 2000 that uses
Halsetbusdata/Halgetbusdata function in order to read and write
configuration register from/into pci devices. These functions are
required only bus/slot number as a parameters.
The problem is happened under Windows XP. These functions are not
available for PCI/PCI Express bridge devices (i.e. when i have PCI/PCI
express bridge on my tested card). I found that i need to use
IRP_MN_QUERY_INTERFACE and IRP_MN_WRITE_CONFIG requests instead. But,
i don't have device objects for the tested driver so i can send IRP
request.

Can you suggest some solution for this problem under Windows XP.

If you need more information, please let me know.

Thank you.
Alex