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


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

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

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

Эта функция задает данные конфигурации шины для устройства в динамически настраиваемой шине ввода-вывода с помощью опубликованного стандартного интерфейса.

Синтаксис

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

Параметры

[in] BusDataType

Данные шины, которые нужно задать. Это значение может быть PCIConfiguration. Верхняя граница поддерживаемых типов всегда имеет значение MaximumBusDataType.

[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

Число байтов в буфере.

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

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

Комментарии

Драйвер может вызвать эту функцию или HalSetBusData, если такой вызов требуется в необычных обстоятельствах или характере устройства. Например, драйвер может вызвать любой из этих функций, чтобы очистить бит в регистре состояния PCI, если его устройство сигнализирует о прерывании целевого объекта во время инициализации. Как правило, оборудование или код запуска настраивает устройство соответствующим образом.

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

Требования

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

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

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG