Я пытаюсь реализовать очень простой фильтр паролей Windows в C ++ на основе примеров в эта статья
Однако LSA не загружает DLL (ничего из загруженных модулей в msinfo32), несмотря на то, что установлена соответствующая запись reg и DLL копируется в system32 и перезагружается. это происходит на 2003 x64 и 2008R2 (очевидно, также x64). Я искал stackoverflow и реализовал все рекомендации до сих пор.
Я использую VS2012. Он установлен на x64 и / MT (поэтому мне не нужно переадресацию правильно?), И я убедился, что на файл .def ссылаются правильно. В средстве обхода зависимостей я вижу, что три функции экспортированы правильно, хотя в нем говорится: «По крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в неявно зависимом модуле». и утверждает, что kernel32.dll не хватает некоторых импортов (не уверен, что это актуально).
Как я могу отладить то, что происходит в то время, когда LSA должен загружать DLL? Примечание: я не разработчик, поэтому некоторые из вышеперечисленных пунктов довольно туманные, особенно в отношении поведения при компиляции / компоновке и при экспорте функций.
большое спасибо
После просмотра информации по адресу: https://support.microsoft.com/en-us/kb/2686224
Я обнаружил информацию, за которой мы следовали, чтобы НЕ указывать путь и расширение файла было неправильным для сервера 2012. Я обновил реестр этой информацией и поместил x64 dll в папку System32 вместе с msvcp100.dll и msvcr100.dll (из system32 dir машины, на которой я скомпилировал dll). Перезагрузись, протестируй, БАМ!
Проверьте журналы системных событий, найдите записи ERROR для Directory-Services-SAM. Он также скажет: DLL-уведомление уведомления пароля: C: \ Windows \ System32 \ PasswordFilterRegEx.dll не удалось загрузить с ошибкой 126 -или- DLL-уведомление уведомления пароля: \ Windows \ System32 \ PasswordFilterRegEx.dll не удалось загрузить с ошибкой 193
126 означает, что не может найти саму dll (вероятно, отсутствует путь в записи реестра) или отсутствуют зависимости (msvcp100.dll и msvcr100.dll в моем случае)
193 означает, что он не может загрузить dll из-за несоответствия архитектуры (например, вы используете 32-битную ОС, но пытаетесь загрузить 64-битную dll или наоборот)