Windivert 在 Win10 中失败 - TCP 3握手的解决方案 - 逃避窗口 RST 数据包



我有一个项目,它使用 windivert 在我的网络中用作路由器,它工作正常,但现在使用相同的代码已经死了。以前成功运行的版本现在不起作用。我总是收到相同的Windivert错误,即997(重叠的I/O操作正在进行中)。

例如,当我使用 WindivertOpen 时,我收到错误,当我重新启动计算机以重置 windivert 驱动程序时,我在 WindivertOpen 中没有收到错误 997,但我在 WindivertSend 或 WinDivertSendEx 中得到它,使用它们后,我再次收到 WindivertOpen 中的错误。这些功能几个月前对我来说工作正常,我的路由器按预期工作,但现在我已经完成了这些错误,我无能为力,也许这是由 Windows 安全更新引起的。

我需要知道如何在不重新启动计算机的情况下重置驱动程序,并知道我可以做些什么来面对这个问题。我使用 windivert 阻止 windows TCP RST 数据包到我的路由器 fordward,当没有与您正在访问的端口关联的套接字时,Windows 会这样做,我可以做些什么来阻止这个数据包而不使用 windivert 或 windivert 的工作方式?

997 错误ERROR_IO_PENDING,但错误代码毫无意义,除非WinDivertOpen返回INVALID_HANDLE_VALUE。 否则,呼叫将成功完成。

据推测,您已经从以前的版本升级到WinDivert 1.4。 简单地替换二进制文件(dll/sys)是行不通的 - 你必须针对新的API重新编译你的程序。

相关内容

最新更新