国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 維修 > 卡類(lèi) > 正文

英偉達(dá)顯卡更新新版本后開(kāi)機(jī)卡在歡迎界面或黑屏的原因以及解決辦法

2019-10-28 20:01:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
最近有用戶反應(yīng)英偉達(dá)顯卡更新新版本后開(kāi)機(jī)卡在歡迎界面或黑屏的情況,這是怎么回事呢?今天小編就為大家?guī)?lái)解決辦法,一起看看吧
先拋出個(gè)結(jié)論,之后給分析結(jié)果,說(shuō)明(文中的dllmain對(duì)應(yīng)dll入口點(diǎn),模塊的入口點(diǎn)函數(shù)名不一定名字都是dllmain)

結(jié)論:

Dwm.exe進(jìn)程初始化LdrInitializeThunk內(nèi)部先映射dll,在一塊兒調(diào)用這些dll的dllmain,在調(diào)用user32的dllmain時(shí),加載英偉達(dá)的nvinitx.dll這個(gè)模塊使用SHGetShellFolder,該函數(shù)使用了rpcrt4.dll中的一些數(shù)據(jù),但是鎖相關(guān)數(shù)據(jù)還沒(méi)有被初始化(因?yàn)榘凑{(diào)用順序先后還沒(méi)有調(diào)用到rpcrt4.dl它的dllmain)就使用,之后導(dǎo)致異常,出現(xiàn)死鎖情況。最終導(dǎo)致黑屏或者卡在系統(tǒng)歡迎界面。

分析的簡(jiǎn)要過(guò)程:

1.從卡時(shí)獲取的dump上看explorer卡在ConnectPort到dwm.exe的一個(gè)port。

英偉達(dá),顯卡,黑屏

2.查看dwm.exe中的線程,發(fā)現(xiàn)其中一個(gè)線程卡在調(diào)用SHGetShellFolder函數(shù)內(nèi)部。這個(gè)卡之后就導(dǎo)致explorer.exe工作異常,一直卡在鏈接dwm.exe中的port。

英偉達(dá),顯卡,黑屏

3. 查看鎖sechost!SddlSidLookupCritical的狀態(tài),發(fā)現(xiàn)此鎖被dwm.exe主線程占用,沒(méi)有釋放。 仔細(xì)分析發(fā)現(xiàn)主線程正常情況下不應(yīng)該釋放不了這個(gè)臨界區(qū)。

英偉達(dá),顯卡,黑屏

4.猜測(cè)只可能出現(xiàn)什么異常導(dǎo)致沒(méi)有釋放這個(gè)臨界區(qū)。

(上雙機(jī)調(diào)試)調(diào)試發(fā)現(xiàn)dwm.exe的主線程中英偉達(dá)nvinitx.dll的dllmain會(huì)調(diào)用SHGetFoldPathW函數(shù),這個(gè)函數(shù)調(diào)用的時(shí)候,已經(jīng)占用了鎖SddlSidLookupCritical,這個(gè)時(shí)候在去調(diào)用RPCRT4.dll中相關(guān)函數(shù),卻在調(diào)用EnterCriticalSection獲取rpcrt4的臨界區(qū)GlobalMutex出現(xiàn)異常,跳出到shell32中的異常處理函數(shù)_GSHandlerCheck_EH,這個(gè)時(shí)候?qū)е聸](méi)有釋放SddlSidLookupCritical鎖,SHGetFoldPathW就返回了。查看了下異常,發(fā)現(xiàn)rpcrt4中的臨界區(qū)該臨界區(qū)GlobalMutex沒(méi)有初始化,dllmain 內(nèi)部很多其它變量值也沒(méi)有初始化,可以確定是dllmain沒(méi)有被調(diào)用到。

英偉達(dá),顯卡,黑屏

英偉達(dá),顯卡,黑屏

5. ida分析可以知道GlobalMutex的初始化在rpcrt4.dll的dllmain內(nèi)部 。所以可以知道出問(wèn)題的原因就是rpcrt4.dll的dllmain沒(méi)有調(diào)用到,那么為什么會(huì)導(dǎo)致這個(gè)dllmain沒(méi)有調(diào)用掉呢?

6. 分析發(fā)現(xiàn)這個(gè)SHGetFoldPathW的調(diào)用是在nvinitx.dll的dllmain中。

ntdll!LdrpInitializeProcess函數(shù)先映射導(dǎo)入表中的dll在調(diào)用這些dll中的dllmain函數(shù)。

這個(gè)出問(wèn)題環(huán)境調(diào)試發(fā)現(xiàn)rpcr4.dll中dllmain并沒(méi)有調(diào)用到,這個(gè)時(shí)候gdi32的dllmain函數(shù)內(nèi)部調(diào)用loadlibrary加載nvinitx.dll,并調(diào)用nvinitx.dll的dllmain函數(shù),但是這個(gè)時(shí)候調(diào)用LdrpLoadDll加載rpcr4.dll的時(shí)候,(之前剛映射,這個(gè)時(shí)候LdrpLoadDll發(fā)現(xiàn)rpcr4.dll已經(jīng)被映射了,所以就不會(huì)調(diào)用這個(gè)rpcr4.dll的dllmain函數(shù))

Loadlibrary調(diào)用LdrpLoadDll(這個(gè)函數(shù)先檢查模塊rpcr4.dll是否映射,發(fā)現(xiàn)已經(jīng)映射就不會(huì)調(diào)用這個(gè)的dllmain,接下來(lái)調(diào)用其它函數(shù)使用臨界區(qū)GlobalMutex就出現(xiàn)異常崩潰)這個(gè)rpcr4.dll的dllmain會(huì)在接下來(lái)的ntdll!LdrpRunInitalizeroutines函數(shù)內(nèi)部調(diào)用 。

英偉達(dá),顯卡,黑屏

英偉達(dá),顯卡,黑屏

7.更新了英偉達(dá)顯卡驅(qū)動(dòng)372.54及372.70版本后,開(kāi)機(jī)啟動(dòng)過(guò)程中,經(jīng)過(guò)上面一系列的異常調(diào)用,最終系統(tǒng)會(huì)被卡在歡迎界面或個(gè)別電腦出現(xiàn)黑屏的情況。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到顯卡頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 仙游县| 信阳市| 塔城市| 新乡县| 江源县| 新乡县| 昌江| 鄯善县| 祁连县| 同心县| 兴海县| 云和县| 绥江县| 泰宁县| 京山县| 沙田区| 北宁市| 扶余县| 甘德县| 宁陵县| 灵宝市| 舒城县| 双辽市| 汽车| 聂拉木县| 台南市| 东海县| 凤翔县| 临邑县| 上蔡县| 夏河县| 乌拉特前旗| 安新县| 滨海县| 凤凰县| 南宁市| 扎鲁特旗| 禄劝| 南澳县| 晴隆县| 家居|