Access PCI Express Extended Configuration Space

Hi list,

According to Microsoft, on Windows Vista/Longhon extended configuration space
access is supported through the Memory-Mapped PCI Configuration Space (MCFG)
table. The BIOS must implement the MCFG table to provide access to
memory-mapped extended configuration space.

To access extended configuration space on these operating systems, drivers
should use documented interfaces such as BUS_INTERFACE_STANDARD and IRP_MJ_PNP
requests with IRP_MN_READ_CONFIG or IRP_MN_WRITE_CONFIG. These interfaces have
been extended in Windows Vista and Windows Server Longhorn to support accessing
extended configuration space. Windows operating systems allow access to
configuration space through both the MCFG and CF8/CFC mechanisms, but MCFG
access is required to use PCI Express extended configuration space.

I have written a driver to access and dump the configuration space of every PCI
Express device on the system, but it always fails when reading after the
256-byte offset; I mean it can just read the PCI config space and fails when
reading the extended space. If you want I can send the source code.

Has anyone been able to read the extended config space on Windows Vista/LH with
BUS_INTERFACE_STANDARD/IRP_MN_READ_CONFIG interfaces?

Here is my environment details:
Windows Server Longhorn IA32 build 5456
Windows Vista and Windows Server x86 Free Build Environment (WDK 5456).

Regards

================================
Rodolfo Martinez Cardenas.


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around