1

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

提前致谢!

4

1 回答 1

1

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

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

于 2015-07-02T12:04:01.407 回答