我需要实现802.1x有线请求程序,为此我需要开发一个基于NDIS 6的驱动程序,该驱动程序也可以用作过滤器。
我知道使用LWF过滤器可以实现过滤功能,WDK也有直通过滤器的例子。我没有得到任何在线资源来研究选择哪种类型的驱动程序进行开发以支持802.1x功能。
是否可以通过LWF实现,或者我是否需要为802.1x有线连接开发一个迷你端口驱动程序才能工作?
坦率地说,我对OneX相当无知,所以如果我说了一些愚蠢或明显的话,请耐心等待。
当您编写LWF时,您应该从概念上认为您的过滤器驱动程序是NIC的一部分;在操作系统的其他部分看到之前,你的过滤器可以修改NIC所做的一切,然后问自己:"我怎么会把这种行为强加给一个无知的微型端口司机呢?"。
在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)的值,然后传播状态指示。
我不能保证这足以让事情运转起来,因为我不知道以前有谁这样做过。