Knowledge Base

INFO: HalSetBusData Does Not Allow Programming PCI Bridge Device

Article ID: 197529

Article Last Modified on 2/12/2007


APPLIES TO


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.

Additional query words: card bus

Keywords: kbinfo kbkmode KB197529