Windows NDIS筛选器 - 如何检查操作系统是否使用了端口

时间:2015-04-01 17:37:30

标签: windows tcp kernel ndis windows-kernel

我正在编写一个Windows NDIS过滤器驱动程序,并希望能够从内核中查询tcp端口的状态(是否正在使用?)。 当驱动程序使用IRQL = dispatch_level时,我是否可以使用WSK Network API或其他任何方法来查询操作系统是否正在使用某个端口?

提前致谢!

1 个答案:

答案 0 :(得分:0)

AFAIK,没有可见的(读取:记录)方法。一种选择是使用GetTcpTable2,使用IOCTL解析并将信息发送到驱动程序。有关如何从用户模式执行此操作的示例,请参阅this question,您必须添加一些要处理的工作并将其发送给驱动程序。

也可以通过不太优选的方式对GetTcpTable2使用的API进行逆向工程并自己使用它。请参阅OSR中的讨论,包括一些线索和一些很好的理由,为什么不这样做。