我正在编写一个windows NDIS过滤器驱动程序,希望能够从内核内部查询tcp端口的状态(它正在使用吗?)。当驱动程序处于IRQL=dispatch_level时,我是否可以使用WSK Network API或其他任何东西来查询操作系统是否正在使用端口?
提前感谢!
AFAIK,没有可见的(读取:文档化)方法可以做到这一点。一种选择是使用GetTcpTable2,解析信息并使用IOCTL将其发送给驱动程序。请参阅此问题以获取如何在用户模式下进行操作的示例,您必须添加一些要处理的工作并将其发送给驱动程序。
还可以通过对GetTcpTable2使用的API进行逆向工程的不太可取的方法,并自己使用它。请参阅OSR中的讨论,包括一些线索和一些不这样做的好理由。