非原版Windows系統缺少mdmcpq驅動文件導致驅動安裝出現“該設備的驅動程序未被安裝”錯誤

1、故障現象

       在給單位的一臺Server2008R2 X64服務器上安裝掃描槍的時候發現無法安裝掃描槍驅動,打開設備管理器可以看到掃描槍硬件有黃色歎號標記。錯誤信息如下:

        Windows給出的錯誤提示很簡單,“該設備的驅動程序未被安裝。(代碼 28)”,就是安裝驅動程序有錯,但是具體是什麼錯誤,我們從這裏是無法得到的。如果以錯誤提示或者錯誤代碼爲關鍵字上網搜索的話,相信我你一定得不到太多有用的信息。因爲之前另外一臺win7x64上安裝這個掃描槍驅動是沒問題的,所以我知道問題不在驅動本身或者硬件設備上。一開始以爲是操作系統版本問題,但08r2和win7本來就是差不多的,繞了一些彎路後,還是決定從錯誤的根源上找原因。

 2、問題分析

      上網搜索後,知道驅動安裝會生成系統日誌保持在C:\Windows\inf\setupapi.dev.log\setupapi.dev.log中。打開這個日誌找到相關日誌信息再來分析問題就非常簡單了。這是一個非常值得學習的小技巧,log日誌遠比圖形界面提供的錯誤信息完整並且更有指導意義。如下是setupapi.dev.log中驅動安裝時的相關錯誤信息節選:

     inf:           Opened INF: 'c:\windows\temp\dmiwu\{de4ae465-6949-463b-9822-287a65fb2b68}\nls_vcp_driver.inf' ([strings])
!    inf:           Could not find include INF file "layout.inf". Error = 0x00000002
!    inf:           Unable to load INF: 'C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc\mdmcpq.inf'(00000003)
!    inf:           Error 3: The system cannot find the path specified.
!    inf:           Could not find include INF file "mdmcpq.inf". Error = 0x00000003

       相比設備管理器提供的錯誤信息,這裏的日誌足夠清楚了,安裝驅動的時候因爲打不開mdmcpq.inf文件所以驅動安裝無法繼續報錯了。上面一行的layout.inf文件經過分析上下文是不影響安裝進行的,重要的還是缺少mdmcpq這個東西。找到驅動的安裝目錄,在這個掃描槍驅動的inf文件中有如下行:

[VCP_DriverInstall.NT]
Include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=VCP_DriverInstall.NT.AddReg

3、解決方法

       也就是說安裝掃描槍驅動時引用mdmcpq.inf文件,但是安裝時候找不到這個文件,所以出錯了。上網直接搜吧,很容易找到一堆關於mdmcpq缺失的問題。同時也會搜到一些無效的方法,比如複製原版的mdmcpq.inf 和 usbser.sys到system32的inf和drivers目錄。

       但是從日誌很明顯知道驅動查找的是C:\Windows\System32\DriverStore\FileRepository\目錄。所以最好的方法還是從正常的系統中直接複製C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc目錄到故障系統的同位置目錄下,如果複製時提示文件夾沒有訪問權限,給FileRepository目錄增加用戶權限就行了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章