以前32位时,lsp代码正常运行,但安装在win7后也能运行,但逐渐发现32位的lsp dll只能过滤32位的进程.
64位的进程似乎没有影响。查看dll模块也没有我的lsp dll身影。
百度了下资料。发现了几点。
windows LSP 实现及多个lsp兼容安装的几个坑
1、在64位系统中,针对32位程序和64位程序需要分别实现对应的LSP模块,即64位程序不会加载32位的lsp
2、lsp模块最后放到系统盘的system32(64位 syswow64)下,否则可能导致某些程序加载不到对应的模块
那么就是说我win7 64位还要编译lsp x64的dll .并install进 spi协议链去。同时lsp x64的dll要放在64位 syswow64里.
经过了一天的编码调试,终于搞定,64位的程序也能加载64位的lsp dll.成功拦截。
如果32位的是lsp.dll , 开始我以为要另外编译一个lsp64.dll 同时guid之类还要不同。注册lsp的名称也要加64
但是我发现虽然install成功了。但是64位程序死活不加载lsp64.dll.