英伟达显卡更新新版本后开机卡在欢迎界面或黑屏的原因以及解决办法

所属分类: 硬件教程 / 显卡 阅读数: 213
收藏 0 赞 0 分享
最近有用户反应英伟达显卡更新新版本后开机卡在欢迎界面或黑屏的情况,这是怎么回事呢?今天小编就为大家带来解决办法,一起看看吧
先抛出个结论,之后给分析结果,说明(文中的dllmain对应dll入口点,模块的入口点函数名不一定名字都是dllmain)

结论:

Dwm.exe进程初始化LdrInitializeThunk内部先映射dll,在一块儿调用这些dll的dllmain,在调用user32的dllmain时,加载英伟达的nvinitx.dll这个模块使用SHGetShellFolder,该函数使用了rpcrt4.dll中的一些数据,但是锁相关数据还没有被初始化(因为按调用顺序先后还没有调用到rpcrt4.dl它的dllmain)就使用,之后导致异常,出现死锁情况。最终导致黑屏或者卡在系统欢迎界面。

分析的简要过程:

1.从卡时获取的dump上看explorer卡在ConnectPort到dwm.exe的一个port。

2.查看dwm.exe中的线程,发现其中一个线程卡在调用SHGetShellFolder函数内部。这个卡之后就导致explorer.exe工作异常,一直卡在链接dwm.exe中的port。

3. 查看锁sechost!SddlSidLookupCritical的状态,发现此锁被dwm.exe主线程占用,没有释放。 仔细分析发现主线程正常情况下不应该释放不了这个临界区。

4.猜测只可能出现什么异常导致没有释放这个临界区。

(上双机调试)调试发现dwm.exe的主线程中英伟达nvinitx.dll的dllmain会调用SHGetFoldPathW函数,这个函数调用的时候,已经占用了锁SddlSidLookupCritical,这个时候在去调用RPCRT4.dll中相关函数,却在调用EnterCriticalSection获取rpcrt4的临界区GlobalMutex出现异常,跳出到shell32中的异常处理函数_GSHandlerCheck_EH,这个时候导致没有释放SddlSidLookupCritical锁,SHGetFoldPathW就返回了。查看了下异常,发现rpcrt4中的临界区该临界区GlobalMutex没有初始化,dllmain 内部很多其它变量值也没有初始化,可以确定是dllmain没有被调用到。

5. ida分析可以知道GlobalMutex的初始化在rpcrt4.dll的dllmain内部 。所以可以知道出问题的原因就是rpcrt4.dll的dllmain没有调用到,那么为什么会导致这个dllmain没有调用掉呢?

6. 分析发现这个SHGetFoldPathW的调用是在nvinitx.dll的dllmain中。

ntdll!LdrpInitializeProcess函数先映射导入表中的dll在调用这些dll中的dllmain函数。

这个出问题环境调试发现rpcr4.dll中dllmain并没有调用到,这个时候gdi32的dllmain函数内部调用loadlibrary加载nvinitx.dll,并调用nvinitx.dll的dllmain函数,但是这个时候调用LdrpLoadDll加载rpcr4.dll的时候,(之前刚映射,这个时候LdrpLoadDll发现rpcr4.dll已经被映射了,所以就不会调用这个rpcr4.dll的dllmain函数)

Loadlibrary调用LdrpLoadDll(这个函数先检查模块rpcr4.dll是否映射,发现已经映射就不会调用这个的dllmain,接下来调用其它函数使用临界区GlobalMutex就出现异常崩溃)这个rpcr4.dll的dllmain会在接下来的ntdll!LdrpRunInitalizeroutines函数内部调用 。

7.更新了英伟达显卡驱动372.54及372.70版本后,开机启动过程中,经过上面一系列的异常调用,最终系统会被卡在欢迎界面或个别电脑出现黑屏的情况。

相关阅读:

英伟达nvidia(N卡)如何设置效果最好

英伟达显卡设置在哪 NVIDIA控制面板打开方法图文介绍

英伟达为解决Chrome崩溃等问题 发布GeForce热修复驱动

更多精彩内容其他人还在看

268天后 AMD RX480第二次再战GTX 1060

两家GPU厂商中,如果有一家对旧卡优化的较好,性能不断提升,另一家的旧卡哪怕性能不变,但相对竞品来说已经是“负优化”了。在268天后,AMD RX480第二次再战GTX 1060,详情我们一起来看看吧
收藏 0 赞 0 分享

AMD RX 580完全跑分、超频测试全曝光:主频提升了7%

本月18日,AMD将发布全新的RX 500系显卡,包括RX 580/570/560/550,现在,香港著名超频玩家Lau Kin Lam(林仔)在FB上分享而来自己对一款讯景的水冷板RX 580 3小时的评测跑分结果,一起来看看
收藏 0 赞 0 分享

日本玄人志向推出新版GTX 1080显卡:11Gbps新GDDR5X显存

日本玄人志向推出新版GTX 1080显卡,升级到了11Gbps新GDDR5X显存,主频设定为1657/1797MHz(Boost)。下面我们一起来看看这款显卡长什么样吧
收藏 0 赞 0 分享

NVIDIA GeForce 20系列第三季度提前发布:单卡价格或提高

据最新爆料,NVIDIA计划提前发布GeForce 20系列,预测会在今年第三季度发布,与此同时GeForce 20系列产品的价格、市场定位也会重新规划,尤其是将会提高单卡价格,以提升利润做市场,当然了,这样也能更好地回击AMD,继续在高端市场上打压对方
收藏 0 赞 0 分享

同德推双排四风扇GTX 1080 Ti显卡:性能提高7%

Palit(同德)近日推出了全新的GameRock家族系列,这款显卡的主打亮点是四风扇设计,性能提高了7%,高频温度降低了12摄氏度,而且噪音还少了6dB
收藏 0 赞 0 分享

RX470D配什么CPU和主板好 适合RX470D搭配的主板及CPU介绍

RX 470D是专为中国特供的一款显卡,那么,在装机时,RX470D配什么CPU和RX470D配什么主板好?针对这类问题,本文就为大家介绍几款适合适合RX470D搭配的主板及CPU型号,有兴趣的朋友们就来了解下吧
收藏 0 赞 0 分享

AMD RX580怎么样 AMD RX580显卡全面评测图解

AMD RX580悄然而至,有传闻它只是RX480的小幅度升级版,又有传闻它采用了新核心,真相如何?AMD RX580怎么样?是否值得买?本文带来AMD RX580显卡全面评测图解,一起来了解下吧
收藏 0 赞 0 分享

AMD RX 500家族显卡集体发布:四款型号惊喜升级

AMD RX 500家族显卡集体发布,包括RX 580、RX 570、RX 560、RX 550四款型号,从工艺到规格都有了提升,包括最新一代14nm FinFET制造工艺、更激进的高频率、增强的待机和多屏能效、更多产品等。详情我们来看看吧
收藏 0 赞 0 分享

amd rx580是否值得买?AMD RX 580显卡开箱+拆解最深度评测

掐指一算,据AMD RX480发布至今也快一年了,作为AMD北极星架构的初代产品,RX480在与GTX1060的2000元甜点显卡市场争夺战中表现得可谓是风生水起;如今,它的继任者AMD RX580悄然而至,下面为大家带来AMD RX 580显卡开箱+拆解最深度评测,来看看吧
收藏 0 赞 0 分享

RX 500系列价格多少?AMD RX 500系列显卡国行价格公布

AMD刚刚正式发布了新一代Radeon RX 500系列显卡,包括RX 580、RX 570、RX 560、RX 550四款型号,那么RX 500系列价格多少?目前AMD RX 500系列显卡国行价格公布,我们一起来看看吧
收藏 0 赞 0 分享
查看更多