Драйвер фильтра NDIS не загружается в Windows 2008 R2 - PullRequest
0 голосов
/ 18 марта 2011

Я пытаюсь разработать драйвер фильтра NDIS. Тем не менее, я не могу загрузить его. У меня включены параметры загрузки debug и testsigning; мой драйвер подписан тестом, а сертификат загружен в магазины root и trustedpublisher.

До того как я включил testsigning, мой драйвер будет отображаться в ntbootlog.txt как

Не загружен драйвер \ SystemRoot \ system32 \ DRIVERS \ mydriver.sys

После того, как я включил testsigning, драйвер вообще не появляется. Это, однако, представлено в свойствах интерфейса. Интерфейс не работает до тех пор, пока я не отключу свой фильтр, хотя мой драйвер в настоящее время является очень минимальным транзитным драйвером фильтра NDIS. Когда я отключаю свой фильтр, все снова работает нормально.

Драйвер не указан в списке модулей windbg, но указан в списке «выгруженных модулей», что предполагает, что драйвер был загружен в определенный момент. Мой драйвер производит некоторые выходные данные во время DriverEntry и DriverUnload, а также во всех обязательных перехватах NDIS. Ни один из этих выходных данных не отображается в !dbgprint windbg, что говорит о том, что DriverEntry драйвера никогда не вызывался.

Я не знаю, как решить эту проблему; Кто-нибудь может дать мне несколько советов относительно того, что здесь может происходить?

Я использую Windows 2008 R2 DataCenter, проверенная сборка. В настоящее время я ограничен настройкой одной машины.

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Если драйвер отображается в списке выгруженных модулей, значит, он загружен.

Если вы используете DbgPrint, обязательно прочитайте документацию MSDN , особенно раздел о фильтрации.

Чтобы поймать загрузку драйвера, вы можете использовать sxe ld:mydriver, что позволит вам установить точки останова в вашей записи драйвера. Еще один простой способ отладки - установить жестко заданную точку останова в DriverEntry DbgBreakPoint()

.
0 голосов
/ 19 марта 2011

Попробуйте сначала загрузить простой драйвер, который печатает только строку трассировки в DriverEntry, протестируйте его и загрузите.Если вы увидите след, мы попытаемся понять, что не так с вашим конкретным драйвером.Если нет, возможно, трассировка ядра отключена для вашей системы, и ваш драйвер NDIS не загружен из-за проблемы, которую вы, конечно, не видите, потому что трассировки системы отключены.

...