捕获扩展
捕获扩展的 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 可扩展交换机扩展。