Hello,
I’m seeing some interesting behavior with a PCI Express bridge board on Windows XP SP3 (32-bit) and am hoping to get some confirmation/validation that it is expected.
Windows XP does not appear to be correctly reading the Subsystem ID and Subsystem Vendor ID (offsets 86h and 84h) for a PCI bridge (Header Type 1) device. A couple of the Hardware Ids contain SUBSYS, but it is all zeros. I’m getting this information from the device properties in Device Manager.
Windows 7 and 8.1 (32- and 64-bit) all correctly read these registers and make the contents available (non-zero) in the Hardware Ids.
Can anyone confirm that this is expected in Win XP?
We have several different boards which make use of the same bridge (i.e. Vendor and Device ID identical) but the Subsystem ID and Subsystem Vendor are different and I am hoping to make use of those fields in the INF file for my driver to differentiate between board types. This scheme works very well in Windows 7 and 8.1 but XP is proving to be a challenge.
Thanks,
Matt
This may be because the OS is reading the IDs too soon, or the device is somehow not able to supply the correct IDs in time.
Or different size of the config cycle is used and the device incorrectly handles some sizes.
XP predates those fields. PCI bridges didn’t have subsystem IDs when the XP code was written.
– Jake Oshins
Microsoft
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@rtd.com
Sent: Tuesday, March 11, 2014 3:18 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] PCI Bridge configuration space in Windows XP
Hello,
I’m seeing some interesting behavior with a PCI Express bridge board on Windows XP SP3 (32-bit) and am hoping to get some confirmation/validation that it is expected.
Windows XP does not appear to be correctly reading the Subsystem ID and Subsystem Vendor ID (offsets 86h and 84h) for a PCI bridge (Header Type 1) device. A couple of the Hardware Ids contain SUBSYS, but it is all zeros. I’m getting this information from the device properties in Device Manager.
Windows 7 and 8.1 (32- and 64-bit) all correctly read these registers and make the contents available (non-zero) in the Hardware Ids.
Can anyone confirm that this is expected in Win XP?
We have several different boards which make use of the same bridge (i.e. Vendor and Device ID identical) but the Subsystem ID and Subsystem Vendor are different and I am hoping to make use of those fields in the INF file for my driver to differentiate between board types. This scheme works very well in Windows 7 and 8.1 but XP is proving to be a challenge.
Thanks,
Matt
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
Thank you for the replies; much appreciated.
Matt