Мой WiFi продолжает отключаться, и я управляю своим компьютером с помощью Synergy. Я перерыл журналы событий и обнаружил, что все начинается с WlanSvcDisconnectRequest (часть WlanSvc, запускаемого под svchost.) Я уверен, что это не аппаратная ошибка.
Я устал от необходимости подключать мой ключ Wi-Fi, чтобы он снова подключился (поскольку компьютер управляется с помощью Synergy и не имеет подключенной мыши / клавиатуры), поэтому я решил попробовать отладить его, чтобы посмотреть, смогу ли я определите, что на самом деле отправляет запрос WlanSvcDisconnectRequest каждые несколько минут.
Я старался изо всех сил, чтобы увидеть, смогу ли я отладить его, но не могу установить точку останова.
Я использую правильную версию WinDbg (64-разрядную) и запускаю ее как повышенный процесс.
Я открыл его, нашел процесс svchost, который запускает WlanSvc, и попытался установить точку останова:
0:013> bc * 0:013> bp wlansvc!WlanSvcDisconnectRequest 0:013> bl 0 e 00007ff8`6d914ba8 0001 (0001) 0:**** wlansvc!WlanSvcDisconnectRequest 0:013> g Unable to insert breakpoint 0 at 00007ff8`6d914ba8, Win32 error 0n998 "Invalid access to memory location." The breakpoint was set with BP. If you want breakpoints to track module load/unload state you must use BU. bp0 at 00007ff8`6d914ba8 failed WaitForEvent failed ntdll!DbgBreakPoint+0x1: 00007ff8`75729921 c3 ret
Я также попытался установить его как неразрешенную точку останова:
0:013> bc * 0:013> x wlansvc!WlanSvcDisconnectRequest 00007ff8`6d914ba8 wlansvc!WlanSvcDisconnectRequest = <no type information> 0:013> bu wlansvc!WlanSvcDisconnectRequest 0:013> g Unable to insert breakpoint 0 at 00007ff8`6d914ba8, Win32 error 0n998 "Invalid access to memory location." bp0 at 00007ff8`6d914ba8 failed WaitForEvent failed ntdll!DbgBreakPoint+0x1: 00007ff8`75729921 c3 ret
Я не использовал WinDbg раньше, но большое количество Googling было сделано безрезультатно. Почему я не могу установить точку останова для wlansvc!WlanSvcDisconnectRequest?
Версия WinDbg:
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Системная информация:
OS Name: Microsoft Windows 10 Pro OS Version: 10.0.14393 N/A Build 14393 OS Manufacturer: Microsoft Corporation OS Configuration: Standalone Workstation OS Build Type: Multiprocessor Free System Type: x64-based PC Processor(s): 1 Processor(s) Installed. [01]: Intel64 Family 6 Model 15 Stepping 2 GenuineIntel ~1867 Mhz
Путь символа:
srv*;C:\Symbols\wlansvc.pdb
Обновление: Пробовал отключать ASLR с EMETS, не помог при попытке установить точку останова.
Вы пробовали другой ключ Wi-Fi?
harrymc 6 лет назад
0
1 ответ на вопрос
1
ge0rdi
Проблема в том, что wlansvc!WlanSvcDisconnectRequestна самом деле структура данных хранится в .rdataразделе wlansvc.dll. Он хранится в постоянной памяти и не содержит никакого кода. Таким образом, создание точки останова не имеет никакого смысла.
Вы можете проверить это !address wlansvc!WlanSvcDisconnectRequestкомандой. Он сообщит о PAGE_READONLYзащите страницы для заданной области памяти.
Если вы хотите разорвать, когда какой-то код обращается к этой структуре, вам нужно установить точку останова данных : ba r1 wlansvc!WlanSvcDisconnectRequest
Или вы можете просто включить стандартный brakpoint для wlansvc!IntfDisconnectработы, поскольку это единственное место, которое содержит ссылку на wlansvc!WlanSvcDisconnectRequestструктуру (которую можно найти, например, с помощью дизассемблера IDA ).
Спасибо! Я действительно ценю это. Я сделаю это сегодня днем.
Austin Burk 6 лет назад
0