来自其他驱动程序堆栈的配置信息

有时,需要从设备配置空间中获取信息,即该设备的驱动程序位于一个与您的驱动程序不同的堆栈上。 例如,假设你想要在 PCI 到 PCI 桥的配置空间中设置一个位,并且没有指向桥的 PDO 的指针。 尽管操作系统会枚举 PCI 到 PCI 桥并为系统中的每个桥创建 PDO,但它不会为这些设备注册设备接口。 因此,无法使用设备接口机制访问这些网桥的配置空间。 有关设备接口的详细信息,请参阅 设备接口简介

驱动程序访问属于其他驱动程序堆栈的硬件的一种方法是编写筛选器驱动程序。 例如,若要访问网桥硬件,可以设计一个过滤驱动程序,用于在桥的配置空间上执行所需的操作。 还必须提供一个 INF 文件,该文件指定桥硬件的可能硬件 ID。 INF 文件允许 PnP 管理器在检测到桥的设备 ID 时将筛选器驱动程序加载到桥的驱动程序堆栈上。

或者,可以在设备的共同安装程序中使用 SetupDiXxx 函数以编程方式安装筛选器。

然后,筛选器驱动程序可以使用 BUS_INTERFACE_STANDARD 接口访问桥。

有关演示如何使用 BUS_INTERFACE_STANDARD 访问 PCI 配置空间的示例实现,请参阅 PCIDRV 驱动程序示例