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

所属分类: 硬件教程 / 显卡 阅读数: 167
收藏 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热修复驱动

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

影驰GeForce GTX 1060骨灰黑将显卡评测+拆解

影驰除了定位高端的名人堂和定位游戏的GAMER系列显卡以外,现在将系列主要分为骨灰大将、骨灰黑将、大将、黑将、骁将、虎将6大系列,那么影驰GTX 1060骨灰黑将3GB显卡怎么样呢?下面就详情来看看评测情况
收藏 0 赞 0 分享

4GB显存真的够用吗?RX 480 4GB/8GB游戏显存需求对比评测

近几年来游戏大作开始使用新的游戏引擎,可以支持更高清的纹理贴图,随着2K、4K分辨率显示器普及,VR浸沉式设备降临,这些因素都对显存大小提出了全新的要求。什么样的情况下会出现“爆显存”?下面就拿RX480 4GB和RX480 8GB两张的显卡测试,一起来看看吧
收藏 0 赞 0 分享

华硕GTX 1070龙骑士全面评测+显卡拆解

在GTX 1070上市之初便推出了ROG STRIX GTX 1070显卡,该显卡是市面上最强的非公版GTX 1070显卡之一。近期,华硕又推出了一款全新GTX 1070产品——华硕龙骑士DRAGON GTX1070-TOP8G,那么这款显卡性能如何呢?下面就一起来看看评测吧
收藏 0 赞 0 分享

笔记本显卡和台式机显卡差多少?两类显卡之间的性能对比

虽然配置一样,但台式机显卡和笔记本显卡真的大不相同吗?笔记本显卡和台式机显卡差多少?下面小编就为大家分享两类显卡之间的性能对比,来看看吧
收藏 0 赞 0 分享

GTX 1040被爆定于Q3发布:流处理器数量只有640

消息人士透露,GTX 1040定于Q3发布,流处理器数量只有640个,也就是6GB 1060的一半,1070的1/3,如果1050/1040最终上市,那么就将触及NV错失很久的千元卡市场,彻底打乱AMD RX 470/460的错位竞争计划
收藏 0 赞 0 分享

EVGA GeForce GTX 1060 FTW+GAMING显卡评测和拆解图

EVGA是目前NVIDIA最为核心合作伙伴,EVGA GeForce GTX 1060系列中定位Extreme级别的高阶型号,下面就来评测的是EVGA GeForce GTX 1060 FTW+GAMING ACX 3.0吧
收藏 0 赞 0 分享

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

很多用户反应的问题,当英伟达显卡驱动372.54及372.70版本后导致开机卡在欢迎界面或黑屏,这一直是困扰很多用户的问题
收藏 0 赞 0 分享

讯景RX 470深红纪念版性能规格和拆解图赏

RX 470首发公版超频性能特别的突出,稍加超频之后跑分甚至可以超过RX 480,那么即将推出的讯景RX 470深红纪念版又怎么样呢?下面就详情来看看讯景RX 470深红纪念版实物拆解图赏吧
收藏 0 赞 0 分享

NVIDIA GTX 1050和GTX 1050 Ti显卡规格详解 GTX 1050 Ti将配4GB显存

NVIDIA GTX 1050系列显卡已经确定10月份登场,这次将有两个版本GTX 1050和GTX 1050 Ti,NVIDIA再一次在中低端显卡是使用Ti后缀,下面小编分享了两款显卡的规格配置,一起详情来看看了解下吧
收藏 0 赞 0 分享

购买显卡选择什么样的好?DIY电脑怎么购买显卡?

购买显卡选择什么样的好?DIY电脑怎么购买显卡?下面小编就给大家带来一些显卡的选购技巧,感兴趣的朋友们可以过来看看
收藏 0 赞 0 分享
查看更多