我有一个项目,它使用windivert在我的网络中作为路由器工作,它工作得很好,但现在使用相同的代码就死了。以前成功工作的版本现在不能工作了。我总是收到相同的Windivert错误,即997 (重叠的I/O操作正在进行中)。
例如,当我使用WindivertOpen时,我得到了这样的错误:当我重新启动计算机来重置windivert驱动程序时,我在WindivertOpen中没有得到错误997,但我在WindivertSend或WinDivertSendEx中得到了它,在使用它们之后,我再次在WindivertOpen中得到了错误。几个月前,这些功能对我来说运行得很好,我的路由器也像我预期的那样工作,但现在我已经解决了这些错误,我无能为力,也许这是由windows安全更新引起的。
我需要知道如何在不重新启动计算机的情况下重置驱动程序,并知道我可以做些什么来面对这个问题。我使用windivert来阻止windows TCP RST数据包转发到我的路由器,当没有与您转发的端口相关联的套接字时,windows会这样做,我可以做些什么来阻止此数据包而不使用windivert或使用windivert的工作方式?
发布于 2018-02-05 01:06:25
997错误是ERROR_IO_PENDING
,但除非WinDivertOpen
返回INVALID_HANDLE_VALUE
,否则错误代码没有意义。否则,调用将成功完成。
您可能已经从以前的版本升级到了WinDivert 1.4。简单地替换二进制文件( API /sys
)是行不通的--您必须根据新的API重新编译您的程序。
https://stackoverflow.com/questions/48598020
复制相似问题