PCI_SLOT_NUMBER structure (miniport.h)

The PCI_SLOT_NUMBER structure is obsolete. It defines the format of the Slot parameter to the obsolete HalXxxBusData routines when they are called with the BusDataType value PCIConfiguration.

Syntax

typedef struct _PCI_SLOT_NUMBER {
  union {
    struct {
      ULONG DeviceNumber : 5;
      ULONG FunctionNumber : 3;
      ULONG Reserved : 24;
    } bits;
    ULONG AsULONG;
  } u;
} PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER;

Members

u

u.bits

Specifies the particular device on a multifunction adapter at the given slot that is being configured. The DeviceNumber indicates the logical slot number for the adapter; the FunctionNumber indicates the particular device on that adapter.

u.bits.DeviceNumber

u.bits.FunctionNumber

u.bits.Reserved

u.AsULONG

Specifies the logical slot number of the device being configured.

Remarks

Drivers of PCI devices can call HalGetBusData or HalGetBusDataByOffset more than once for the same slot number to get the configuration information for their device(s).

For example, a driver might search for devices it supports on all PCI buses in the machine first, and then call HalGetBusData(ByOffset) again to request more configuration information about devices of interest. Such a driver could code a loop that calls HalGetBusData(ByOffset) with an input Buffer of sufficient Length only to contain enough of the PCI_COMMON_CONFIG to determine the VendorID and DeviceID of each PCI device. After finding the Slot numbers for any promising PCI devices, the driver would call HalGetBusData or HalGetBusDataByOffset one or more times with additional buffer space to get the information needed to configure its devices.

Requirements

Requirement Value
Header miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)

See also

HalAssignSlotResources

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalSetBusDataByOffset

PCI_COMMON_CONFIG