Поделиться через


Функция 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 для указанного номера слота и номера функции. Указанное смещение и длина определяют объем информации для предоставления. Некоторые члены пространства конфигурации PCI имеют значения только для чтения. Вызывающий объект отвечает за сохранение системных значений элементов только для чтения. Обратите внимание, что для устройства PCI Типа 1 HalSetBusDataByOffset запрещает запись в общий заголовок (первые 256 байт пространства конфигурации).

[in] Offset

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

[in] Length

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

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

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

Замечания

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

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

Требования

Требование Ценность
заголовка ntddk.h (include Ntddk.h)

См. также

BUS_DATA_TYPE

HalGetBusData

HalSetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG