PCIFind.EXE is a utility designed to run under DOS, Windows3.x, Windows95/98 and WindowsNT4/2000/XP/2003 operating systems. The tasks it performs are different in each case, but the net effect is similar. The directory SOURCE contains DOS code for performing a scan of the resources of a PCI card from within your own code. Windows programs use the registry entries created by PCIFind and NTioPCI.SYS, as described below. Examples of using the registry entries are provided with your PCI card. In Windows95/98: PCIFind.EXE uses low level calls to the API designed to detect our hardware devices present on the PCI bus. If it finds any appropriate devices, it writes keys and values into the system registry describing the hardware found. The most important two values are NumDevices and PCICommonConfig. NumDevices indicates how many of our cards were found. PCICommonConfig is an array of structures of type PCI_COMMON_CONFIG. PCI_COMMON_CONFIG is defined by Microsoft in the DDK. A declaration example is available in samples provided with each PCI card. In WindowsNT4/2000/XP/2003: PCIFind.EXE reads the registry entries created for it by NTioPCI.SYS. NTIOPCI.SYS is a kernel mode device driver designed to iterate devices on the PCI bus, and add appropriate Registry entries as necessary for later use, either by PCIFind.EXE, the samples provided with the PCI card, or your own code. See the discussion for Windows95 to understand the nature of the registry entries. This iteration and registry update occurs each time the computer boots. It is recommended that you refer to the samples provided with your PCI card to learn how to use the registry entries in your own code. Additionally, those samples demonstrate how to make one program work with both Windows95/98 and WindowsNT using ACCES32.