Сведения о конфигурации из других стеков драйверов

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

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

Кроме того, можно установить фильтр программным способом с помощью функций SetupDiXxx в совместном установщике устройства.

Затем драйвер фильтра может получить доступ к мосту с помощью интерфейса BUS_INTERFACE_STANDARD .

Пример реализации, демонстрирующий использование BUS_INTERFACE_STANDARD для доступа к пространству конфигурации PCI, см. в примере драйвера PCIDRV.