【发布时间】:2015-06-06 11:34:45
【问题描述】:
我正在编写一个 Windows NDIS 过滤器驱动程序,并希望能够从内核内部查询 tcp 端口的状态(它是否在使用中?)。 当驱动在 IRQL = dispatch_level 时,我可以使用 WSK 网络 API 或其他任何东西来查询操作系统是否正在使用端口吗?
提前致谢!
【问题讨论】:
标签: windows tcp kernel ndis windows-kernel
我正在编写一个 Windows NDIS 过滤器驱动程序,并希望能够从内核内部查询 tcp 端口的状态(它是否在使用中?)。 当驱动在 IRQL = dispatch_level 时,我可以使用 WSK 网络 API 或其他任何东西来查询操作系统是否正在使用端口吗?
提前致谢!
【问题讨论】:
标签: windows tcp kernel ndis windows-kernel
AFAIK,没有可见的(阅读:记录的)方法可以做到这一点。一种选择是使用 GetTcpTable2,使用 IOCTL 解析信息并将其发送到驱动程序。有关如何从用户模式执行此操作的示例,请参阅 this question,您必须添加一些工作来处理并将其发送给驱动程序。
也可以通过不太优选的方式对 GetTcpTable2 使用的 API 进行逆向工程并自己使用它。请参阅OSR 中的讨论,包括一些线索和一些不这样做的充分理由。
【讨论】: