Firefox 4 Beta 和 Winsock LSP
我在使用 Firefox 4 Beta 时遇到问题。
看来 Firefox 以某种方式忽略了所有已安装的 LSP 提供程序。但它确实使用了winsock。
有什么问题吗?是我的LSP问题吗?我能解决吗?
I have a problem with Firefox 4 Beta.
It seems that firefox somehow ignores all LSP providers installed. But it does use winsock.
What's the problem? Is it my LSP problem and I can fix it or not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的 LSP 已经可以在旧版本的 Firefox 和其他浏览器上运行,那么您的代码可能没有问题。
在Vista或以上版本中,有一个新引入的概念,称为LSP类别。
当检测到 Vista 时,Firefox 4 Beta 安装程序会调用 WSCSetApplicationCategory()。它将 firefox.exe 的 LSP 类别设置为 LSP_INSPECTOR、LSP_REDIRECTOR、LSP_PROXY、LSP_FIREWALL、LSP_INBOUND_MODIFY、LSP_OUTBOUND_MODIFY、LSP_CRYPTO_COMPRESS。
这意味着只有将自己归类为上述类型之一的 LSP 才允许挂接到 firefox.exe 进程中。
它只发生在 Vista 或更高版本中,您的 LSP 在以前的 Windows 上应该可以正常工作。一旦检测到 Vista,您的 LSP 安装程序应调用 WSCSetProviderInfo() 并对您的 LSP 进行分类,以匹配 Firefox 允许的 LSP 类别。
有关更多详细信息,请阅读:http:// /msdn.microsoft.com/en-us/library/bb513664(v=vs.85).aspx
If your LSP has already worked with older version of Firefox and other browsers, it is likely nothing wrong with your code.
In Vista or above, there is a newly introduced concept called LSP categories.
Firefox 4 Beta installer calls WSCSetApplicationCategory() when Vista detected. It sets LSP category for firefox.exe as LSP_INSPECTOR, LSP_REDIRECTOR, LSP_PROXY,LSP_FIREWALL, LSP_INBOUND_MODIFY, LSP_OUTBOUND_MODIFY, LSP_CRYPTO_COMPRESS.
It means only LSPs that categorized themselves as one of the above are allowed to hook in firefox.exe process.
It only happens in Vista or later, your LSP should work fine on previous Windows. Once Vista detected, your LSP installer should call WSCSetProviderInfo() and classify your LSP to match firefox's permitted LSP categories.
For more details, have a read at: http://msdn.microsoft.com/en-us/library/bb513664(v=vs.85).aspx
我有同样的问题并解决了这个问题。我将 LSP 安装为 BASE_PROTOCOL 而不是 LAYERED_PROTOCOL。
但是,如果您选择编写自己的 BASE_PROTOCOL,则必须小心。您的提供商必须与其他 LSP 良好合作。
I had the same problem and solved this. I installed my LSP as a BASE_PROTOCOL instead of LAYERED_PROTOCOL.
However, you have to be careful if you choose to write your own BASE_PROTOCOL. Your provider must work well with other LSP's.