PF 微型端口驱动程序的 MiniportAddDevice 指导原则

本主题介绍为 PCI Express (PCIe) 物理功能 (PF) 的微型端口驱动程序编写 MiniportAddDevice 函数的准则。 PF 是网络适配器的一个组件,支持单根 I/O 虚拟化 (SR-IOV) 。

注意 这些准则仅适用于 PF 微型端口驱动程序。 有关适配器的 PCIe 虚拟函数 (VF) 微型端口驱动程序的初始化准则,请参阅 初始化 VF 微型端口驱动程序

即插即用 (PnP) 管理器调用 NDIS AddDevice 函数, (网络适配器的 FDO) 创建功能设备对象。 如果 PF 微型端口驱动程序在调用 NdisMRegisterMiniportDriver 时注册了 MiniportAddDevice 入口点,则 NDIS 会调用驱动程序的 MiniportAddDevice 函数。

调用 MiniportAddDevice 时,PF 微型端口驱动程序可以为 SR-IOV 和网络接口分配其他软件资源,卡 (NIC) 交换机。 通常,这些资源是在 NDIS 调用驱动程序的 MiniportInitializeEx 函数之前必须分配的资源。

驱动程序可以在调用 MiniportAddDevice 的上下文中执行以下操作:

  • PF 微型端口驱动程序可以调用 NdisReadConfiguration ,以从注册表中读取 SR-IOV 和 NIC 交换机配置设置。 这些配置设置通过标准化的 SR-IOV 关键字定义。 有关这些关键字的详细信息,请参阅 SR-IOV 的标准化 INF 关键字

  • 根据这些配置设置,PF 微型端口驱动程序为 SR-IOV 网络适配器分配其他软件资源。

注意 硬件资源的实际分配和在 PCI 配置空间中启用 SR-IOV 只能在调用 MiniportInitializeEx 的上下文中完成。 由于调用 MiniportAddDevice 时,网络适配器的内存映射 I/O (MMIO) 空间未初始化,因此在调用 MiniportInitializeEx 之前,微型端口驱动程序不得读取或写入适配器。