amp@java

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            99 隨筆 :: 0 文章 :: 228 評(píng)論 :: 0 Trackbacks
          今天遇到一個(gè)非常奇怪的問(wèn)題,有臺(tái)裝XP的電腦,插上USB鍵盤沒(méi)反應(yīng),還以為是鍵盤壞了,又找來(lái)兩個(gè)不同型號(hào)的鍵盤,依然不行,又以為是USB接口壞了,結(jié)果在電腦啟動(dòng)的時(shí)候又可以按F2進(jìn)入BIOS,這樣就只有一個(gè)原因,Windows的驅(qū)動(dòng)沒(méi)裝上了。
          幸好這電腦還有傳統(tǒng)的PS/2口,而且插上就能識(shí)別,否則連Windows都進(jìn)不去,因?yàn)榘碈trl+Alt+Del沒(méi)反應(yīng)。
          進(jìn)去之后提示安裝USB鍵盤驅(qū)動(dòng),到最后一步提示安裝失敗,原因是拒絕訪問(wèn)。
          上網(wǎng)搜了一下,安裝驅(qū)動(dòng)拒絕訪問(wèn)的其中一個(gè)原因是注冊(cè)表有個(gè)鍵的權(quán)限設(shè)置有問(wèn)題,改過(guò)來(lái)即可,但是我打開(kāi)注冊(cè)表,連那個(gè)鍵都沒(méi)找到,不是這個(gè)原因。
          不過(guò)從這個(gè)解決方案中也知道了驅(qū)動(dòng)安裝的日志是在Windows目錄下的setupapi.log文件里面,于是打開(kāi)那個(gè)文件,發(fā)現(xiàn)每次安裝都有兩個(gè)拒絕訪問(wèn)的錯(cuò)誤,但并沒(méi)有說(shuō)是注冊(cè)表拒絕訪問(wèn),在拒絕訪問(wèn)之前,還提到一個(gè)叫MlCoInst.dll的文件沒(méi)有簽名。
          上網(wǎng)搜MlCoInst.dll,沒(méi)有找到任何結(jié)果,在System32目錄下找到它,看屬性,果然沒(méi)有簽名,是個(gè)三無(wú)文件,不知道為什么每次安裝驅(qū)動(dòng)都要調(diào)用它。
          日志里面還提到了“共同安裝程序”,似乎和CoInst有點(diǎn)關(guān)聯(lián),于是又查了一下,原來(lái)安裝驅(qū)動(dòng)的時(shí)候可以通過(guò)調(diào)用“共同安裝程序”來(lái)實(shí)現(xiàn)某些目的,例如修改驅(qū)動(dòng)程序的簽名狀態(tài),欺騙操作系統(tǒng),這樣就可以只安裝一次驅(qū)動(dòng)即可,不用每次插入都安裝一次。
          于是嘗試把MlCoInst.dll刪除,提示刪除失敗。
          在注冊(cè)表里面搜索MlCoInst.dll,把所有找到的鍵值都刪除,再次插拔鍵盤,順利安裝完畢,刪除MlCoInst.dll,也成功了,果然是它的問(wèn)題。

          這個(gè)應(yīng)該是某個(gè)USB設(shè)備的驅(qū)動(dòng)引進(jìn)來(lái)的,而且修改了usb.inf,每次安裝任何USB設(shè)備都要調(diào)用它,但它可能與Windows的簽名機(jī)制有沖突,所以導(dǎo)致安裝失敗,真是坑爹!
          posted on 2015-04-02 17:04 amp@java 閱讀(3606) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 印江| 沧州市| 阿拉善盟| 读书| 郸城县| 莱芜市| 临湘市| 黑水县| 蓬安县| 大田县| 新绛县| 武威市| 资源县| 乐安县| 类乌齐县| 岚皋县| 安图县| 城市| 金溪县| 石泉县| 沙河市| 黎川县| 五华县| 乌兰县| 沧州市| 西乌珠穆沁旗| 得荣县| 通州区| 汾西县| 巴林右旗| 泉州市| 上杭县| 宜兴市| 东宁县| 通化县| 固安县| 涪陵区| 安丘市| 绥滨县| 哈巴河县| 仁布县|