SAMPLE: Dumppci.exe Shows How To Dynamically Load/Unload Driver (178660)



The information in this article applies to:

  • Microsoft Win32 Device Driver Kit (DDK) for Windows NT 4.0
  • Microsoft Win32 Device Driver Kit (DDK) for Windows NT 3.51

This article was previously published under Q178660

SUMMARY

Dumppci.exe is a sample Win32 application and kernel-mode drive that demonstrates how to dynamically load or unload a driver, scan all the PCI devices in the system, and display the PCI configuration space for each device.

MORE INFORMATION

The following file is available for download from the Microsoft Download Center:
For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to Obtain Microsoft Support Files from Online Services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.

Dumppci.exe and Pcidumpr.sys

This is a sample driver that demonstrates the following:
  1. How to dynamically load or unload a driver using the Service Control Manager APIs. These APIs allow you to load a driver without having to modify the registry and reboot the system.
  2. How to scan the PCI slots and locate PCI devices.
  3. How to send data from a kernel-mode driver to a Win32 console mode application.
To run the sample:

  1. Build the driver and the Win32 application. See the DDK documentation for details on creating drivers and Win32 applications from the DDK Build Environment.
  2. Insure that the driver (Pcidumpr.sys) and the Win32 application (Dumppci.exe) are in the same directory.
  3. From a command prompt, type "dumppci" to see the options supported. Currently, you can display the PCI configuration data in either a formatted ("-f" option) or raw ("-r" option) manner.
When the program runs, the driver is automatically loaded and started. The Win32 application sends custom IOCTLs to the driver. The driver then scans all the PCI slots in the system and locates PCI devices. For each PCI device, the driver retrieves the PCI configuration space information and places it in the Win32 application's buffer.

Note This sample does not work across a network. The driver and Win32 application must reside on the local computer.

Modification Type:MinorLast Reviewed:3/21/2005
Keywords:kbdownload kbfile kbSample KB178660 kbAudDeveloper