Craig's PCI Programs

Craig's PCI Diagnostic software: what is this software, anyhow?

In brief, this is a suite of tools for hardware developers, engineers, programmers, system builders and the insatiably curious, that allows exploration of your PCI/AGP/PCI Express/CardBus/CompactPCI/PCI-X/PCI HotPlug/etc. hardware at the lowest level. Full source code is of course included, and is 100% freeware.

Some possible uses for these tools include the following:

- Fully Automating hardware recognition during Operating System installation via the -I option.
- Discovering what an "unknown device" is (both by manufacturer and model), so you can obtain drivers and support. A regularly updated database of over 19,000 entries lists virtually every known PCI device and manufacturer on the planet, even those that no longer exist.
- Examining your exact hardware configuration for curiosity or troubleshooting purposes (e.g. Latency, IRQ routing, AGP speed, resource conflicts and many more common problems can all be solved with these tools)
- Assisting with driver development and hardware design - examine your hardware 'live' as the OS/Driver sees it within Windows, and as the BIOS configures it within DOS via the -D option
- Exploring the source code for assistance with developing your own PCI code or hardware drivers
- Keeping up with modern hardware - with full PCI Express and multiple root-bus support via the -R option, PCI32 outperforms older tools tenfold.
- Auditing systems for hardware change: reports can be saved/printed/emailed/etc for reference and auditing purposes
- And much much more! Download and try it today!

PCI/PCI32 is different to most so-called "Diagnostic" programs, in that it totally bypasses Windows, Drivers, ACPI and the BIOS, and instead communicates directly with the actual hardware at the lowest possible level - unlike so-called diagnostic programs which merely report what the Windows API's and/or registry report, regardless of it's accuracy. PCI32 will show you what's REALLY going on, not just what Windows thinks is happening.

PCI.ZIP Version 1.1   16/03/2005- DOS,Win3.x,Win9x,ME,OS/2 version The current release version of PCI now features classic PCI Specification Version 3.0 support, including all 140 device class/subclass/programming interface codes, PCI Express support, much improved power management  reporting, as well as  many bug fixes and code cleanups.

PCI32.ZIP Version 1.6   19/12/2007 - Windows NT,2000,XP,2003,Vista etc. version

Note: PCI32 does NOT work with any 64-bit version of Windows.
PCI32 runs under 32-bit Vista just fine, IF you do two things - run as an Administrator, AND switch off UAC.

PCI32 is the premier software for classic PCI,. AGP, Cardbus and PCI Express troubleshooting and unknown device recognition. PCI32 fully supports the following standards:

Classic PCI v3.0, AGP v3.0 (AGP 8X), Advanced Power Management (APM) v1.2, Cardbus, PCI Express, IRQ Routing Specification, MSI's, PCI-X, Mini-PCI, CompactPCI, PCI hot-plug.

PCIDEVS.TXT (Updated all the time) - PCI device database update for above programs

To download PCIDEVS.TXT, right-click on it, and select save target as...

See this page for info on how to contribute updates to pcidevs.txt, and info on using it in your own software.

The PCI device database now boasts over 19,500 records - to my knowledge the most exhaustive and accurate list available anywhere on the Internet (Yes, even bigger and more accurate than Linux's list, at last count).
PCIVBS.VBS  (right-click the link, 'save-as' to your hard drive, and double-click to run)

A quick and crude PCI device-list display for windows OS's. could be very handy for Windows Script Authors. Does NOT require admin rights to work!!

This utility is tested and works on both 32-bit and 64-bit Windows!!

A quick and dirty Visual Basic script to read Windows WMI data and dump the PCI devices in a list. note: this script does not use pcidevs.txt, but rather uses whatever names Windows Device Manager lists.

This will run on any Windows PC with WSH installed (200, XP, 2003, Vista etc have Windows Scripting Host installed by default; WSH is a free add-on for win9x)

How do you 'run' PCI32?

PCI32 is a console mode program. That means, it works a little like an old DOS program in that it doesn't use Windows GUI dialog boxes - it just writes text to the screen, then exits (It is a fully fledged 32-bit program, however). you need to open the "Command Prompt" (Start -> All Programs -> Accessories) and run PCI32 from there.

There are more detailed notes in the README.RTF that comes in the ZIPfile.

PCI32 and Windows Vista

PCI32 runs under 32-bit vista just fine, IF you do two things - run under an account with Administrator rights, AND switch off UAC. UAC prevents PCI32 installing the driver gwiopm.sys which PCI32 uses to directly access the hardware.


Donations via Paypal now accepted!

PCI, PCI32 and the database pcidevs.txt have always been, and always will be, 100% free, uncrippled, fully functional freeware. I do not request payment no matter how often you use them - even for commercial use.

However, development of these tools does not come cheaply to me. I have now been working on the PCI collection for over 11 years, and have poured hundreds if not thousands of man-hours into it. I receive a continuous stream of thankyou notes from well-wishers letting me know how much the appreciate my software, and occasionally someone asks if they could contribute in a more tangible way, which is touching.

It is therefore with some hesitation, that I have decided to put my Paypal details here on the site. If you should feel the desire to send me a sum of money as a form of appreciation for this software, please feel free to do so! I leave the sum entirely up to you and your conscience. Donations are entirely your choice, and are definitely NOT required, nor will they represent a purchase of any kind or act as an incentive to me to do any thing for you; the donation function exists solely for you to send me something in appreciation for my work. Enough Said.

NB: Donations are not tax deductible


What's new in PCI32 Version 1.6?

Although nearly two years since the last release, I have been working on PCI32 on and off. I do try to keep the code current e.g. whenever a new feature comes out (such as a new 'new capability', Vista recognition) I do add support. But I have been very lax in releasing updates - so my apologies.

Version 1.6 adds mostly bug fixes and support for the very latest generations of hardware. There are no new major features, but there are lots of small improvements, especially when using the -r (bus tree display) feature on the latest generation machines.


PCI (DOS Version) users, please note the following Important information

Official development of PCI (The 16-bit, DOS Version) is now finished.

What does this mean? It means that in future, all development work will take place only on PCI32 (and, soon, PCI64). No new development work or major additional features will be done on 16-bit PCI. I will, however, continue to release updated versions of PCI from time to time, whenever a bug fix or relevant new feature appear in PCI32.

This decision has been made because there is little to add to 16-bit PCI which is relevant on current systems or relevant under the DOS/WIN9x environment.

Over time, this will mean that PCI32 will gain features that PCI will not. I have come to the conclusion that extending support for a group of OS's that have not been current for at least 5 years, is long enough. I acknowledge that win9x is still current in some areas (especially windows pre-install environments), so of course PCI will continue to be available; there's just not much point in adding, say, PCI Express extended configuration register support to a version where those registers are inaccessible and irrelevant!

Does this mean PCI stops working? Of course not. PCI will continue to function forever -- it will still work tomorrow or next century, just as well as it does today. PCI will continue to accept updated PCIDEVS.TXT files, so it will not go "out of date" or loose any basic functionality. Please understand that "no new development" does NOT mean the existing software stops working! 


OS/2 users: See this web site for a port of PCI to native OS/2. (look for pci11vk.arj or newer version number). The port isn't written by me, but is based on my code. The port was done by Veit Kannegieser, and by all accounts is very good, as it contains several customisations and enhancements specific to OS/2, which make reporting more accurate and comprehensive under this OS.

Veit has spent a lot of time making his port focus on the specific quirks of OS/2 e.g. IRQ sharing issues, so I highly recommend his version to all OS/2 and eComStation users.


BartPE users: You can find a plug-in for BartPE that makes PCI32 a GUI program that runs under BartPE here: http://www.fuwi.ethz.ch/

Once again, this one's not written by me, but it works really well. A big 'thanks and kudos' to the programmer, Willi Furter, from me :-)


Other recommended PCI related software

SIV by Ray Hinchliffe. 'System Information Viewer' is a general Windows utility for dumping lots of useful Windows and hardware info - CPU info, PCI info, USB info, Machine Info, Hardware Sensors, Operating System Information and more. SIV is designed for Windows XP/2K/NT4/.NET, but also gives a subset of info under the Windows 9x series of OS's.

NEW: Please note that Ray how has his own website, where new versions of SIV will be published from now on. Please update your bookmarks, etc.

SANDRA by SiSoftware. SANDRA is an extensive, professional PC info/diagnostic/benchmarking program, developed by C. Adrian Silasi, and is often used by professional hardware reviewers such as Toms Hardware Guide, HardOCP, Anandtech and many others. Sandra uses my pcidevs.txt file (not directly, but in a compiled format, as part of a larger general information database) for PCI device recognition. Sandra runs under Win98 and later, including NT/2K/XP.