Windows密码筛选器DLL未加载

1 c++ dll lsa visual-c++

我试图基于这篇devx文章中的示例在C++中实现一个非常基本的Windows密码过滤器

但是LSA没有加载DLL(msinfo32中加载的模块中没有任何内容),尽管设置了相应的reg条目并且DLL被复制到system32并重新启动.这发生在2003 x64和2008R2(显然也是x64).到目前为止,我已经搜索了stackoverflow并实现了所有建议.

我正在使用VS2012.它被设置为x64和/ MT(所以我不需要redist吧?)我确保正确引用.def文件.在依赖walker中,我可以看到正确导出的三个函数,尽管它说"由于隐式依赖模块中缺少导出函数,至少有一个模块具有未解析的导入".并声称kernel32.dll缺少一些导入(不确定是否相关).

如何调试LSA加载DLL时发生的事情?注意我不是开发人员所以上面的一些是相当模糊的,尤其是在编译/链接和导出函数时的行为.

非常感谢

net*_*yer 5

查看信息后,访问:https://support.microsoft.com/en-us/kb/2686224

我发现我们所遵循的信息没有指定服务器2012的路径和文件扩展名不正确.我使用此信息更新了注册表,并将x64 dll与msvcp100.dll和msvcr100.dll一起放在System32文件夹中(来自我编译dll的机器的system32目录).重启,测试,BAM!

检查系统事件日志,查找Directory-Services-SAM的ERROR条目它会说:密码通知DLL C:\ Windows\System32\PasswordFilterRegEx.dll无法加载错误126 - 或 - 密码通知DLL C:\Windows\System32\PasswordFilterRegEx.dll无法加载错误193

126意味着它无法找到dll本身(可能在注册表项中缺少路径)或者缺少依赖项(在我的情况下为msvcp100.dll和msvcr100.dll)

193意味着由于体系结构不匹配而无法加载dll(例如,您运行的是32位操作系统,但尝试加载64位dll,反之亦然)

  • 这怎么回答这个问题呢?我告诉他究竟如何解决他遇到的问题. (3认同)
  • 这并没有真正回答这个问题.如果您有其他问题,可以通过单击[提问](http://stackoverflow.com/questions/ask)来询问.一旦你有足够的[声誉],你也可以[添加赏金](http://stackoverflow.com/help/privileges/set-bounties)来吸引更多关注这个问题(http://stackoverflow.com/help/什么声誉). - [来自评论](/ review/low-quality-posts/11851800) (2认同)