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


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

[in] Offset

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

[in] Length

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

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

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

Замечания

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

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

Требования

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

См. также

BUS_DATA_TYPE

HalGetBusData

HalGetBusDataByOffset

HalSetBusData

HalTranslateBusAddress

PCI_COMMON_CONFIG