支持多功能 PCI 设备

如果多功能 PCI 设备完全符合 PCI 多功能标准,PCI 总线驱动程序将枚举各个功能。 PCI 总线驱动程序管理驻留在单个设备位置的多个功能这一事实。 在系统的其余部分,各个函数像独立设备一样运行。

基于 NT 的平台上 PCI 多功能设备的供应商必须执行以下操作:

  • 确保设备符合 PCI 多功能规范。

  • 为设备的每个功能提供 PnP 函数驱动程序。

    由于系统提供的总线驱动程序处理多功能语义,因此函数驱动程序可以是将函数打包为单个设备时使用的相同驱动程序。

  • 为设备的每个功能提供 INF 文件。

    INF 文件可以是将函数打包为单个设备时使用的相同文件。 INF 文件不需要任何特殊的多功能语义。

例如,下图显示了可为具有 ISDN 和调制解调器功能的多功能 PCI 设备创建的示例设备堆栈。

该图显示了其父枚举每个函数的多功能设备的设备堆栈。

如上图所示,PCI 驱动程序枚举两个子设备,而不是枚举一个多功能设备。 PnP 管理器将每个子设备视为典型设备、查找 INF 文件、加载相应的驱动程序、调用其 AddDevice 例程等,直到为每个设备创建设备堆栈为止。 PCI 驱动程序仲裁子设备的资源,并管理设备的任何其他多功能方面。 多功能卡供应商为 ISDN 和调制解调器设备提供功能驱动程序和 INF,就像它们是单独的设备一样。

此图重点介绍每个函数及其关联的 FDO 和 PDO 的函数驱动程序和总线驱动程序。 为简单起见,省略任何筛选器驱动程序(和筛选器 DO)。