Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как проанализировать, почему рефлектор завершил процесс узла драйвера (WUDFHost.exe) или почему произошел сбой процесса узла драйвера.
Наиболее распространенной причиной прекращения процесса узла рефлектором является истечение срока действия таймаутов процесса узла UMDF.
Настоятельно рекомендуется выполнять всю разработку и тестирование драйвера UMDF с подключенным к тестовой системе отладчиком ядра, а также включив средство проверки приложений (AppVerif.exe) на WUDFHost.exe. Используйте следующую команду, подключите отладчик ядра и перезагрузите его.
AppVerif –enable Heaps Exceptions Handles Locks Memory TLS Leak –for WudfHost.exe
Использование файлов дампа
При сбое драйвера UMDF или возникновении проблемы в отладчике ядра будет сообщён останов. Эти проблемы следует отладить, когда в отладчике ядра сообщаются исключения в пользовательском режиме. Прерывания отладчика ядра также регистрируются WudfRd.sys перед завершением процесса хостинга драйвера из-за проблемного (не откликающегося) драйвера UMDF. Вы также найдете лог-файлы и дампы кучи, расположенные по следующему адресу. Чтобы просмотреть файлы дампа, захваченные UMDF, выполните следующие действия.
Найдите последний файл .dmp в каталоге %ProgramData%\Microsoft\WDF. До UMDF 2.15, который поставляется с Windows 10 1507, каталог журналов находится в %windir%\system32\LogFiles\WUDF.
Загрузите последний .dmp-файл в отладчик с помощью следующей команды:
WinDbg -z <path to the .dmp file>Проверьте состояние потоков к моменту завершения.
Если вам необходимо захватить дампы кучи, задайте следующие значения реестра во время тестирования и перезагрузите тестовую систему перед выполнением тестов. Вы также можете просмотреть журнал отчетов об ошибках Windows из журнала событий приложения системы на %SystemRoot%\System32\Winevt\Logs\Application.evtx
reg add "HKLM\Software\Microsoft\windows NT\CurrentVersion\Wudf" /v LogMinidumpType /t REG_DWORD /d 0x1122
reg add "HKLM\Software\Microsoft\windows NT\CurrentVersion\Wudf" /v LogEnable /t REG_DWORD /d 1
Использование отладчика
В других случаях может потребоваться подключиться к целевому объекту в режиме ядра в реальном времени, чтобы определить причину завершения процесса хоста рефлектором. Чтобы настроить сеанс отладки, выполните действия, описанные в разделе «Как включить отладку драйвера UMDF».
После установки подключения используйте !wdfkd.wdfumtriage для проверки драйверов UMDF. Отобразите выдающиеся IRPs с помощью расширения отладчика UMDF !wdfkd.wdfumirps (!wudfext.umirps для UMDF версии 1).
Если ожидается IRP PnP или power IRP, определите, почему драйвер вызывает зависание IRP путем изучения потоков в процессе узла.
Вы можете использовать расширение !process для проверки потоков, выполняющихся в хост-процессе. Значение флагов 0x1f показывает трассировку стека для каждого потока.
!process<process addr>0x1f
Если драйвер не завершил отмененный IRP быстро, определите, какой IRP был отменен и почему он не завершен.
Если ожидается очистка или закрытие IRP, определите, почему IRP занимает много времени для обработки.