捕获扩展

捕获扩展的 Hyper-V 可扩展交换机检查数据包流量、对象标识符 (OID) 请求和 NDIS 状态指示。 此类扩展无法修改或删除数据包,也不能排除数据包传递到可扩展交换机端口。 但是,捕获扩展可能会引发数据包流量,例如包含扩展发送到主机应用程序的流量统计信息的数据包。

捕获扩展在入口数据路径的开头和出口数据路径的末尾调用。 有关这些数据路径的详细信息,请参阅 Hyper-V 可扩展交换机数据路径

捕获扩展具有以下要求和限制:

  • 捕获扩展必须开发为支持可扩展交换机接口的 NDIS 筛选器驱动程序。

    有关筛选器驱动程序的详细信息,请参阅 NDIS 筛选器驱动程序

    有关如何编写捕获扩展的详细信息,请参阅 编写 Hyper-V 可扩展交换机扩展

  • 捕获扩展提供与标准 NDIS 监视筛选器驱动程序相同的功能。 但是,捕获扩展的 INF 文件必须将其安装为修改筛选器驱动程序。

    有关修改筛选器驱动程序的详细信息,请参阅 筛选器驱动程序的类型

    有关修改筛选器驱动程序的 INF 要求的详细信息,请参阅 为修改筛选器驱动程序配置 INF 文件

  • 捕获扩展可以通过入口和出口可扩展交换机数据路径监视数据包。 但是,此类型的扩展必须始终调用 NdisFSendNetBufferLists ,以便将数据包转发到可扩展交换机驱动程序堆栈中的基础驱动程序,而不是完成它们。

  • 捕获扩展不得修改数据包中的数据,也不得将端口目标添加到带外 (OOB) 数据包的数据。 扩展不得免除数据包到任何可扩展交换机端口的传送。

  • 捕获扩展可以产生数据包。 例如,扩展可能源自数据包,以便向远程监视应用程序报告流量状况。

    有关通过扩展发起数据包的详细信息,请参阅 发起数据包流量

    注意 与其他扩展一样,捕获扩展只能在可扩展交换机入口数据路径中产生数据包流量。

  • 捕获扩展可以监视通过可扩展交换机驱动程序堆栈发出的数据包、OID 请求和 NDIS 状态指示。 但是,此类扩展必须通过可扩展交换机驱动程序堆栈转发数据包、OID 请求和 NDIS 状态指示。 扩展不得修改数据包、OID 请求或 NDIS 状态指示中它监视的数据。

  • 扩展名的 INF 文件中的 FilterClass 值必须设置为 ms_switch_capture。 有关详细信息,请参阅 Hyper-V 可扩展交换机扩展的 INF 要求

  • 任意数量的捕获扩展可以绑定到可扩展交换机实例。 默认情况下,根据多个捕获扩展的安装时间进行排序。 例如,多个捕获扩展在可扩展交换机驱动程序堆栈中分层,最近安装的扩展将分层到堆栈中的其他捕获扩展之上。

    绑定到可扩展交换机实例后,可扩展交换机驱动程序堆栈中捕获扩展的分层可以重新排序。 有关详细信息,请参阅 重新排序 Hyper-V 可扩展交换机扩展