V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
learningman
V2EX  ›  问与答

尝试自己修 Windows 的 Bug,请求帮助

  •  
  •   learningman · 2021-11-26 03:21:34 +08:00 · 2367 次点击
    这是一个创建于 1100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的 Win11 的操作中心已经弹不出来很久了,就想着自己修吧 先看事件查看器,就看到 oEVND0.png 确定了出问题的进程是哪个,然后就 Visual Studio 附加调试器,拿到这些 log

    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.UI.Xaml.Controls.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\BCP47Langs.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.Globalization.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\dcomp.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.ApplicationModel.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.Energy.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.Graphics.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.Globalization.Fontgroups.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\fontgroupsoverride.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy\ClockFlyoutExperience.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\policymanager.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.CloudStore.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\usermgrcli.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\directmanipulation.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\wuceffects.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\Windows.CloudStore.Schema.Shell.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\threadpoolwinrt.dll”。
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\NotificationControllerPS.dll”。
    onecore\com\combase\dcomrem\resolver.cxx(2209)\combase.dll!00007FFBE5342488: (caller: 00007FFBE5340D2E) ReturnHr(1) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
    onecore\com\combase\dcomrem\resolver.cxx(2412)\combase.dll!00007FFBE5340D56: (caller: 00007FFBE5341776) ReturnHr(2) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
    shellcommon\shell\notifications\controller\demuxer\passthroughproxy.cpp(20)\NotificationControllerPS.dll!00007FFBA8BE8786: (caller: 00007FFBA8BE1A33) Exception(1) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
    0x00007FFBE49D478C 处(位于 ShellExperienceHost.exe 中)引发的异常: Microsoft C++ 异常: wil::ResultException ,位于内存位置 0x000000437A5FCE70 处。
    0x00007FFBE49D478C 处(位于 ShellExperienceHost.exe 中)引发的异常: Microsoft C++ 异常: [rethrow],位于内存位置 0x0000000000000000 处。
    shellcommon\shell\notifications\controller\demuxer\passthroughproxy.cpp(26)\NotificationControllerPS.dll!00007FFBA8BE7F75: (caller: 00007FFBA8BE1A33) ReturnHr(1) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
        Msg:[shellcommon\shell\notifications\controller\demuxer\passthroughproxy.cpp(20)\NotificationControllerPS.dll!00007FFBA8BE8786: (caller: 00007FFBA8BE1A33) Exception(1) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
    ] 
    shellcommon\shell\notifications\controller\demuxer\PassthroughProxy.h(131)\NotificationControllerPS.dll!00007FFBA8BE8366: (caller: 00007FFBE5340B8D) Exception(2) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
    0x00007FFBE49D478C 处(位于 ShellExperienceHost.exe 中)引发的异常: Microsoft C++ 异常: wil::ResultException ,位于内存位置 0x000000437A5FCF70 处。
    0x00007FFBE49D478C 处(位于 ShellExperienceHost.exe 中)引发的异常: Microsoft C++ 异常: [rethrow],位于内存位置 0x0000000000000000 处。
    shellcommon\shell\notifications\controller\demuxer\PassthroughProxy.h(137)\NotificationControllerPS.dll!00007FFBA8BE7EB2: (caller: 00007FFBE5340B8D) ReturnHr(2) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
        Msg:[shellcommon\shell\notifications\controller\demuxer\PassthroughProxy.h(131)\NotificationControllerPS.dll!00007FFBA8BE8366: (caller: 00007FFBE5340B8D) Exception(2) tid(201c) 80070422 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
    ] 
    onecore\com\combase\objact\objact.cxx(4080)\combase.dll!00007FFBE5345105: (caller: 00007FFBE5344EB5) ReturnHr(3) tid(201c) 80040154 没有注册类
    onecore\com\combase\objact\dllcache.cxx(2434)\combase.dll!00007FFBE5345000: (caller: 00007FFBE53434EC) ReturnHr(4) tid(201c) 80040154 没有注册类
    onecore\com\combase\objact\dllcache.cxx(860)\combase.dll!00007FFBE5343740: (caller: 00007FFBE5356B23) ReturnHr(5) tid(201c) 80040154 没有注册类
    shellcommon\shell\windows.ui.shell\actioncenter\product\NotificationCenter\NotificationSink.cpp(127)\Windows.UI.ActionCenter.dll!00007FFB3429F8E9: (caller: 00007FFBE5204EAD) FailFast(1) tid(201c) 80040154 没有注册类
        CallContext:[\UpdateSinkRegistration] 
    “ShellExperienceHost.exe”(Win32): 已加载“C:\Windows\System32\bcrypt.dll”。
    0x00007FFB3429F8E9 (Windows.UI.ActionCenter.dll) (ShellExperienceHost.exe 中)处有未经处理的异常: 请求了严重的程序退出。
    

    看着是某个服务没法启动,但是我肯定没有 Windows Kernel 的 pdb ,没法下断点,试着调了一下汇编也没啥结果,请问这里应该怎么进行下一步呢? 首先应该确定的应该是到底是哪个服务没法启动。。。。

    第 1 条附言  ·  2021-11-26 11:57:59 +08:00
    硬读汇编找到了需求的服务,对我而言,引发错误的是 WpnService ,看描述是一个管理 Windows 通知的程序,这个服务损坏了,重新创建即可解决。
    13 条回复    2021-11-26 13:49:34 +08:00
    ysc3839
        1
    ysc3839  
       2021-11-26 06:12:29 +08:00 via Android
    建议直接重装系统。
    kokutou
        2
    kokutou  
       2021-11-26 08:10:39 +08:00 via Android
    升级安装最简单
    ly841000
        3
    ly841000  
       2021-11-26 08:20:43 +08:00
    不要用 Visual Studio 调试器 要用 windbg
    dejavuwind
        4
    dejavuwind  
       2021-11-26 09:14:35 +08:00
    0x80070422 的报错信息表示无法启动服务。

    请问您的电脑是否使用三方的安全防护软件或优化软件进行服务优化?

    请您尝试执行以下的方法,然后重新更新:

    1 、如果有使用三方安全防护软件或优化软件进行优化,请您还原优化项目,关闭三方安全软件或优化软件。

    2 、查看服务是否开启

    1 ) Windows+R ,输入“services.msc”回车,打开服务;

    2 )在服务中查看 windows update ,Cryptographic Services ,Background Intelligent Transfer Service ,Windows Installer 是否是正常开启的状态。

    希望以上的信息可以帮助到您。
    kujio
        5
    kujio  
       2021-11-26 09:29:53 +08:00
    win 还是复杂,linux 出问题还有修一修的勇气和能力,win 出 bug 连修一修的想法都没有过.
    shyrock
        6
    shyrock  
       2021-11-26 09:34:56 +08:00
    @kujio #5 重点在于 99.99%的你以为是 windows 的 bug ,最后都发现是自己的代码有问题,比如内存泄漏什么的。
    DK7S
        7
    DK7S  
       2021-11-26 09:59:45 +08:00
    之前我的 windows 控制中心也弹不出来,后一个版本修复了
    ScepterZ
        8
    ScepterZ  
       2021-11-26 10:11:40 +08:00
    每次带外接显示器休眠后都开不开,重启资源管理器就好了
    mason961125
        9
    mason961125  
       2021-11-26 10:14:29 +08:00
    > 但是我肯定没有 Windows Kernel 的 pdb

    其实 Visual Studio 是支持从微软那边下载系统级 DLL 的 pdb 调试的...
    learningman
        10
    learningman  
    OP
       2021-11-26 11:21:03 +08:00 via Android
    @mason961125 我试了查找源了,找不到
    zk8802
        11
    zk8802  
       2021-11-26 12:01:33 +08:00
    楼主下次可以考虑用 IDA Pro 或者 Ghidra 的反编译器,这样就不用硬读汇编了。
    Jabin
        12
    Jabin  
       2021-11-26 12:46:31 +08:00 via Android
    在管理员命令提示符下键入以下命令:
    Dism /Online /Cleanup-Image /ScanHealth
    这条命令将扫描全部系统文件并和官方系统文件对比,扫描计算机中的不一致情况。
    Dism /Online /Cleanup-Image /CheckHealth
    这条命令必须在前一条命令执行完以后,发现系统文件有损坏时使用。
    DISM /Online /Cleanup-image /RestoreHealth
    这条命令是把那些不同的系统文件还原成官方系统源文件。
    完成后重启,再键入以下命令:sfc /SCANNOW
    learningman
        13
    learningman  
    OP
       2021-11-26 13:49:34 +08:00   ❤️ 1
    @Jabin #12 这不微软社区三件套吗。。。没啥大用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1746 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:34 · PVG 00:34 · LAX 08:34 · JFK 11:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.