是否可以使用NDIS6 LWF过滤器驱动程序实现802.1X请求者功能?

时间:2015-11-26 08:25:36

标签: windows winapi driver linux-device-driver ndis

我需要实现一个802.1x有线请求者,我需要开发一个基于NDIS 6的驱动程序,它也可以用作过滤器。

我知道可以使用LWF过滤器实现过滤功能,WDK也提供了passthru过滤器示例。我没有获得任何在线资源来研究选择哪种类型的驱动程序来支持802.1x功能。

可以通过LWF进行,还是需要为这个802.1x有线连接开发微型端口驱动程序?

1 个答案:

答案 0 :(得分:0)

坦率地说,我对OneX一无所知,所以如果我说些愚蠢或明显的东西,请耐心等待。

当您编写LWF时,您应该在概念上将您的过滤器驱动程序视为NIC的一部分;在操作系统的其余部分看到之前,你的过滤器会修改网卡所做的一切。 (反之亦然 - 当操作系统与NIC通信时,您的过滤器会在NIC看到它之前修改该命令。)那么您应该做的是阅读 miniport 的行为应该为OneX做的,然后问问自己“我怎么会在一个无知的微型端口驱动程序之上窃取这种行为?”。

在NDIS6中,每个NIC都有一个或多个“端口”。典型的以太网NIC只有一个端口,它也称为“默认端口”。 OneX authz状态是端口的属性。典型的以太网NIC不会采取任何特定操作,在这种情况下,它将获得一个默认端口分配默认参数(即,不需要authz)。

微型端口可以随时通过发出NDIS_STATUS_PORT_STATE来更新端口参数。该状态指示通知OS新控制& authz说。

理论上,LWF可以简单地通过最初发出此状态指示将基本的OneX支持粘贴到微型端口上,然后每次OneX状态改变时再次发送。为了正确填写状态指示的其他字段(例如,XmitLinkSpeed),您可能需要从NIC缓存这些字段。您可以通过查询OID_GEN_PORT_STATE随时从下层查询此结构。

如果来自您下方(即来自微型端口或较低的LWF),您还应该捕获该状态指示。如果发生这种情况,请从较低层获取值,合并您关注的字段的值(control& authz),然后传播状态指示。

我不能保证这足以让事情发挥作用,因为我不知道之前是谁做过这件事。