typedef struct _PCI_COMMON_CONFIG {
    USHORT VendorID;	
    USHORT DeviceID;
    USHORT Command;
    USHORT Status;
    UCHAR RevisionID;
    UCHAR ProgIf;
    UCHAR SubClass;
    UCHAR BaseClass;	
    UCHAR CacheLineSize;	
    UCHAR LatencyTimer;	
    UCHAR HeaderType;
    UCHAR BIST;	
    union {
         struct _PCI_HEADER_TYPE_0 {
             ULONG BaseAddresses[PCI_TYPE0_ADDRESSES];
             ULONG Reserved1[2];
             ULONG ROMBaseAddress;
             ULONG Reserved2[2];
             UCHAR InterruptLine;
             UCHAR InterruptPin;
             UCHAR MinimumGrant;
             UCHAR MaximumLatency;
         } type0;
     } u;
     UCHAR DeviceSpecific[192];
} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
PCI_COMMON_CONFIG defines standard PCI configuration information returned by HalGetBusData or HalGetBusDataByOffset for the input BusDataType PCIConfiguration, assuming the caller-allocated Buffer is of sufficient Length.
PCI_ENABLE_IO_SPACE
PCI_ENABLE_MEMORY_SPACE
PCI_ENABLE_BUS_MASTER
PCI_ENABLE_SPECIAL_CYCLES
PCI_ENABLE_WRITE_AND_VALIDATE
PCI_ENABLE_VGA_COMPATIBLE_PALETTE
PCI_ENABLE_PARITY
PCI_ENABLE_WAIT_CYCLE
PCI_ENABLE_SERR
PCI_ENABLE_FAST_BACK_TO_BACK
PCI_STATUS_FAST_BACK_TO_BACK 		// read-only
PCI_STATUS_DATA_PARITY_DETECTED
PCI_STATUS_DEVSEL								// 2 bits wide
PCI_STATUS_SIGNALED_TARGET_ABORT
PCI_STATUS_RECEIVED_TARGET_ABORT
PCI_STATUS_RECEIVED_MASTER_ABORT
PCI_STATUS_SIGNALED_SYSTEM_ERROR
PCI_STATUS_DETECTED_PARITY_ERROR
Certain members of this structure have read-only values, so attempts to reset them are ignored. These members include the following: VendorID, DeviceID, RevisionID, ProgIf, SubClass, BaseClass, HeaderType, InterruptPin, MinimumGrant, and MaximumLatency.
Other members are provisionally read-only: that is, the system initializes them to their correct values, so drivers can safely treat them as read-only. However, they can be reset if a busmaster driver finds it necessary. These members include the following: CacheLineSize and LatencyTimer.
HalAssignSlotResources, HalGetBusData, HalGetBusDataByOffset, HalSetBusData, HalSetBusDataByOffset