Функция HalGetBusDataByOffset (ntddk.h)

Предупреждение

HalGetBusDataByOffset и HalSetBusDataByOffset предоставляются для обратной совместимости, но их следует использовать только в том случае, если нельзя использовать методы , рекомендованные в разделе Доступ к пространству конфигурации устройства .

Эта функция извлекает сведения о слоте или адресе в шине ввода-вывода, начиная с смещения.

Синтаксис

NTHALAPI ULONG HalGetBusDataByOffset(
  [in] BUS_DATA_TYPE BusDataType,
  [in] ULONG         BusNumber,
  [in] ULONG         SlotNumber,
  [in] PVOID         Buffer,
  [in] ULONG         Offset,
  [in] ULONG         Length
);

Параметры

[in] BusDataType

Данные шины для извлечения. Верхняя граница поддерживаемых типов шины всегда имеет значение MaximumBusDataType. Единственный поддерживаемый BusDataType — PCIConfiguration Все остальные типы являются устаревшими.

[in] BusNumber

Отсчитываемый от нуля и назначенный системой номер шины в системах с несколькими шинами одного типа BusDataType. Этот аргумент также содержит номер сегмента. Чтобы указать номер сегмента, используйте (Сегмент << 8) | BusNumber

[in] SlotNumber

Номер логического слота или расположение устройства. Если указать PCIConfiguration в качестве BusDataType, это значение будет PCI_SLOT_NUMBER значением, которое представляет собой объединенные номера слотов и функций.

[in] Buffer

Указатель на буфер, предоставленный вызывающим объектом, для сведений о конфигурации, относящихся к BusDataType.

Если указать PCIConfiguration, буфер будет содержать сведения о пространстве конфигурации PCI для указанного slotNumber и номера функции. Указанные значения Offset и Length определяют объем информации, которую необходимо предоставить. Некоторые элементы пространства конфигурации PCI имеют значения только для чтения. Вызывающий объект отвечает за сохранение системных значений членов, доступных только для чтения. Обратите внимание, что для устройства PCI типа 1 HalSetBusDataByOffset предотвращает запись в регистры внутри общего заголовка (первые 256 байт пространства конфигурации).

[in] Offset

Смещение байтов в структуре PCI_COMMON_CONFIG, для которой должны возвращаться запрошенные сведения. Вызывающие абоненты могут использовать системную константную PCI_COMMON_HDR_LENGTH, чтобы указать область PCI_COMMON_CONFIG для конкретного устройства.

[in] Length

Максимальное число байтов в буфере.

Возвращаемое значение

Возвращаемое значение — это фактическая длина, считываемая из пространства конфигурации.

Комментарии

Драйверы устройств вызывают эту функцию во время инициализации, чтобы найти свои устройства в определенной шине ввода-вывода. Возвращаемые данные конфигурации конкретного типа шины можно использовать в последующих вызовах других функций конфигурации и инициализации, таких как HalTranslateBusAddress.

При доступе к области конкретного устройства в пространстве конфигурации PCI HalGetBusDataByOffset гарантирует, что эта функция никогда не считывает и не записывает данные за пределами диапазона, заданного входными значениями Offset и Length. Даже если входной параметр Length точно равен 1-байтовому или 2-байтовому слову, эта функция никогда не обращается к данным за пределами запрошенного диапазона.

Требования

Требование Значение
Заголовок ntddk.h (включая Ntddk.h)

См. также раздел

BUS_DATA_TYPE

HalGetBusData

HalSetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG