INFO: HalSetBusData Does Not Allow Programming PCI Bridge Device (197529)



The information in this article applies to:

  • Microsoft Windows NT 4.0 Driver Development Kit (DDK), when used with:
    • the operating system: Microsoft Windows NT
  • Microsoft Windows 2000 Driver Development Kit (DDK), when used with:
    • the operating system: Microsoft Windows 2000
  • Microsoft Windows XP Driver Development Kit (DDK), when used with:
    • the operating system: Microsoft Windows XP

This article was previously published under Q197529

SUMMARY

A call to HalSetBusData or HalSetBusDataByOffset fails if the target device is a PCI bridge device and the data to be written is within the PCI common configuration space header. This behavior is by-design, because these functions are used only for programming nonbridge devices.

The Windows NT DDK documentation will be updated to include this information.

MORE INFORMATION

HalSetBusData and HalSetBusDataByOffset can only be used to program PCI devices with a type 0x00 configuration space header. The Header Type register (bits 6 through 0) in the PCI configuration space identifies the device type.

Currently, the following header types are defined:

   0x00  PCI device type
   0x01  PCI bridge type
   0x02  PCI cardbus bridge type
				

Bit 7 of the HeaderType register indicates whether the device is a multifunction device (bit is 1) or a single function device (bit is 0).

REFERENCES

Refer to the Windows NT DDK for information about the HalSetBusData and HalSetBusDataByOffset functions. Refer to the PCI Local Bus Specification for information about PCI.

Modification Type:MinorLast Reviewed:3/21/2005
Keywords:kbinfo kbKMode KB197529