HalGetBusData (Compact 2013)

3/26/2014

This function retrieves configuration information about a specified slot or address on a I/O bus.

Syntax

ULONG HalGetBusData( 
  BUS_DATA_TYPE BusDataType, 
  ULONG BusNumber, 
  ULONG SlotNumber, 
  PVOID Buffer, 
  ULONG Length 
);

Parameters

  • BusDataType
    [in] Type of bus data to be retrieved. The upper bound on the types supported is always MaximumBusDataType from the BUS_DATA_TYPE enumeration. Implementation of bus routines is OEM-specific. The default CEDDK.dll returns 0 for this function. The CEDDK.dll for a CEPC supports PNPISAConfiguration and PCIConfiguration bus configurations.
  • BusNumber
    [in] Zero-based and system-assigned number of the bus in systems with several buses of the same BusDataType.
  • SlotNumber
    [in] Logical slot number or location of the device. If PCIConfiguration is specified as the BusDataType, this value a PCI_SLOT_NUMBER value, which is the slot and function numbers combined.
  • Buffer
    [in] Pointer to a caller-supplied buffer for configuration information specific to BusDataType. If you specify PCIConfiguration, the buffer contains the PCI_COMMON_CONFIG information for the specified SlotNumber and function number.
  • Length
    [in] Maximum number of bytes to return in Buffer.

Return Value

Returns the number of bytes of data it wrote in the specified buffer. If the specifed BusDataType is not valid for the current platform, this function returns 0.

The following table shows the return values for this function that indicate errors when the input BusType is PCIConfiguration.

Value

Description

0

The specified PCI bus does not exist.

2

The specified PCI bus exists, but there is no device at the specified PCI SlotNumber. The Buffer also contains the PCI_INVALID_VENDOR_ID value for the VendorId member of PCI_COMMON_CONFIG.

Remarks

Device drivers call this function during initialization to locate their devices on a particular I/O bus. You can use the returned configuration data, which is specific to the bus type, in later calls to other configuration and initialization functions, such as HalTranslateBusAddress.

For supported buses, HalGetBusData calls HalGetBusDataByOffset with an Offset of 0, which retrieves configuration information for the device starting at Offset 0.

Requirements

Header

ceddk.h

Library

CEDDK.lib

See Also

Reference

Ceddk.dll Bus Access Functions
BUS_DATA_TYPE
HalGetBusDataByOffset
HalSetBusData
HalSetBusDataByOffset
HalTranslateBusAddress
PCI_COMMON_CONFIG