DevCon 不可再分發(fā)。提供它是為了用作調(diào)試和開(kāi)發(fā)工具。您可以隨意修改 DevCon 以供個(gè)人專(zhuān)用。此示例演示了如何有效地同時(shí)使用 SetupAPI 和 CfgMgr32 函數(shù)來(lái)枚舉設(shè)備和執(zhí)行設(shè)備操作。 可以從 Microsoft 下載中心下載以下文件:
收起這個(gè)圖片展開(kāi)這個(gè)圖片
立即下載 DevCon 軟件包。 (http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe) 發(fā)布日期:2003 年 1 月 29 日
有關(guān)如何下載 Microsoft 支持文件的更多信息,請(qǐng)單擊下面的文章編號(hào),以查看 Microsoft 知識(shí)庫(kù)中相應(yīng)的文章:
119591 (http://support.microsoft.com/kb/119591/ ) 如何從聯(lián)機(jī)服務(wù)獲取 Microsoft 支持文件
Microsoft 已對(duì)此文件進(jìn)行了病毒掃描。Microsoft 使用的是該文件發(fā)布時(shí)可以獲得的最新病毒檢測(cè)軟件。該文件存儲(chǔ)在安全性得到增強(qiáng)的服務(wù)器上,以防止在未經(jīng)授權(quán)的情況下對(duì)其進(jìn)行更改。
DevCon.exe 文件包含以下文件:
收起該表格展開(kāi)該表格
文件 | 說(shuō)明 |
I386\DevCon.exe | 32 位 DevCon 工具的二進(jìn)制文件。此文件在 64 位 Windows 上不能充分發(fā)揮作用。 |
Ia64\DevCon.exe | 64 位 DevCon 工具的二進(jìn)制文件。 |
注意:DevCon 的源代碼也可以從 Windows DDK(位于
http://www.microsoft.com/whdc/devtools/ddk/default.mspx (http://www.microsoft.com/whdc/devtools/ddk/default.mspx) )中得到,路徑是
DDK root\Src\Setup\Devcon,此位置還提供了文檔。
使用 DevCon
DevCon 是一個(gè)帶有內(nèi)置文檔的命令行實(shí)用工具。如果您運(yùn)行
devcon help 命令,將會(huì)出現(xiàn)以下命令列表和描述信息。
devcon help 命令可提供關(guān)于任何命令的詳細(xì)幫助。使用其中的某些命令,您可以指定遠(yuǎn)程目標(biāo)計(jì)算機(jī)。如果您在 WOW64 上使用 32 位版的 DevCon,則以下命令有效。
設(shè)備控制臺(tái)幫助: devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...] -r 如果指定它,在命令完成后若需要?jiǎng)t重新啟動(dòng)計(jì)算機(jī)。 <machine> 是目標(biāo)計(jì)算機(jī)的名稱(chēng)。 <command> 是將要執(zhí)行的命令(如下所示)。 <arg>... 是命令需要的一個(gè)或多個(gè)參數(shù)。 要獲取關(guān)于某一特定命令的幫助,請(qǐng)鍵入:devcon.exe help <command> classfilter 允許修改類(lèi)別篩選程序。 classes 列出所有設(shè)備安裝類(lèi)別。 disable 禁用與指定的硬件或?qū)嵗?ID 匹配的設(shè)備。 driverfiles 列出針對(duì)設(shè)備安裝的驅(qū)動(dòng)程序文件。 drivernodes 列出設(shè)備的所有驅(qū)動(dòng)程序節(jié)點(diǎn)。 enable 啟用與指定的硬件或?qū)嵗?ID 匹配的設(shè)備。 find 查找與指定的硬件或?qū)嵗?ID 匹配的設(shè)備。 findall 查找設(shè)備,包括那些未顯示的設(shè)備。 help 顯示此信息。 hwids 列出設(shè)備的硬件 ID。 install 手動(dòng)安裝設(shè)備。 listclass 列出某一安裝類(lèi)別的所有設(shè)備。 reboot 重新啟動(dòng)本地計(jì)算機(jī)。 remove 刪除與特定的硬件或?qū)嵗?ID 匹配的設(shè)備。 rescan 掃描以發(fā)現(xiàn)新的硬件。 resources 列出設(shè)備的硬件資源。 restart 重新啟動(dòng)與特定的硬件或?qū)嵗?ID 匹配的設(shè)備。 stack 列出預(yù)期的設(shè)備驅(qū)動(dòng)程序堆棧。 status 列出設(shè)備的運(yùn)行狀態(tài)。 update 手動(dòng)更新設(shè)備。 UpdateNI 手動(dòng)更新設(shè)備,無(wú)用戶(hù)提示 SetHwID 添加、刪除和更改根枚舉設(shè)備的硬件 ID 的順序。
DevCon 命令示例
devcon -m:\\test find pci\*列出計(jì)算機(jī)
test 上的所有已知 PCI 設(shè)備。(通過(guò)使用
-m,您可以指定一個(gè)目標(biāo)計(jì)算機(jī)。您必須使用“進(jìn)程間通信”(IPC) 訪問(wèn)此計(jì)算機(jī)。)
devcon -r install %WINDIR%\Inf\Netloop.inf *MSLOOP安裝一個(gè)新的 Microsoft 環(huán)回適配器實(shí)例。這將創(chuàng)建一個(gè)新的根枚舉設(shè)備節(jié)點(diǎn),使用此節(jié)點(diǎn)您可以安裝“虛擬設(shè)備”,如環(huán)回適配器。如果需要重新啟動(dòng)計(jì)算機(jī),此命令還將以安靜模式重新啟動(dòng)計(jì)算機(jī)。
devcon classes列出所有已知的安裝類(lèi)別。輸出結(jié)果包含短的未本地化的名稱(chēng)(例如,“USB”)和描述性名稱(chēng)(例如,“通用串行總線(xiàn)控制器”)。
devcon classfilter upper !filter1 !filter2刪除這兩個(gè)指定的篩選程序。
devcon classfilter lower !badfilter +goodfilter用“goodfilter”替換“badfilter”。
devcon driverfiles =ports列出與
ports 安裝類(lèi)別中的每一個(gè)設(shè)備關(guān)聯(lián)的文件。
devcon disable *MSLOOP禁用硬件 ID 以“MSLOOP”結(jié)尾(包括“*MSLOOP”)的所有設(shè)備。
devcon drivernodes @ROOT\PCI_HAL\PNP0A03列出設(shè)備“ROOT\PCI_HAL\PNP0A03”的所有兼容驅(qū)動(dòng)程序。這可以用來(lái)確定為什么選擇原配的設(shè)備信息 (.inf) 文件而不選第三方 .inf 文件。
devcon enable ''*MSLOOP啟用硬件 ID 為“*MSLOOP”的所有設(shè)備。單引號(hào)指示必須嚴(yán)格按字面解釋硬件 ID(換句話(huà)說(shuō),星號(hào) [“*”] 真的
是 一個(gè)星號(hào),而不是通配符)。
devcon find *列出本地計(jì)算機(jī)上存在的所有設(shè)備的設(shè)備實(shí)例。
devcon find pci\*列出本地計(jì)算機(jī)上所有已知的“外圍組件互連”(PCI) 設(shè)備(如果一個(gè)設(shè)備的硬件 ID 以“PCI\”為前綴,此命令就認(rèn)為該設(shè)備是 PCI 設(shè)備)。
devcon find =ports *pnp*列出存在的作為
ports 安裝類(lèi)別的成員而且硬件 ID 中包含“PNP”的設(shè)備。
devcon find =ports @root\*列出存在的作為
ports 安裝類(lèi)別的成員而且在枚舉樹(shù)的“root”分支中的設(shè)備(實(shí)例 ID 以“root\”為前綴)。請(qǐng)注意,有關(guān)實(shí)例 ID 的格式化方式,不應(yīng)作任何編程假定。要確定根設(shè)備,可以檢查設(shè)備狀態(tài)位。此功能包括在 DevCon 中是為了幫助進(jìn)行調(diào)試。
devcon findall =ports列出
ports 類(lèi)別的“不存在”的設(shè)備和存在的設(shè)備。這包括已經(jīng)被刪除的設(shè)備、從一個(gè)插槽移到另一個(gè)插槽的設(shè)備,以及在某些情況下由于 BIOS 改變而被不同地枚舉的設(shè)備。
devcon listclass usb 1394列出命令中所列的每個(gè)類(lèi)別(本例中是 USB 和 1394)的所有存在的設(shè)備。
devcon remove @usb\*刪除所有 USB 設(shè)備。被刪除的設(shè)備列出時(shí)將顯示其刪除狀態(tài)。
devcon rescan重新掃描以發(fā)現(xiàn)新的“即插即用”設(shè)備。
devcon resources =ports列出由
ports 安裝類(lèi)別中的所有設(shè)備使用的資源。
devcon restart =net @''ROOT\*MSLOOP\0000重新啟動(dòng)環(huán)回適配器“ROOT\*MSLOOP\0000”。命令中的單引號(hào)指示必須按字面解釋實(shí)例 ID。
devcon hwids=mouse列出系統(tǒng)中鼠標(biāo)類(lèi)設(shè)備的所有硬件 ID。
devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep將硬件 ID beep 賦予舊式蜂鳴設(shè)備。
devcon stack =ports列出設(shè)備預(yù)期的驅(qū)動(dòng)程序堆棧。包括設(shè)備和類(lèi)別高層/低層篩選程序,以及控制服務(wù)。
devcon status @pci\*列出實(shí)例 ID 以“pci\”開(kāi)頭的每一個(gè)存在設(shè)備的狀態(tài)。
devcon status @ACPI\PNP0501\1列出特定設(shè)備實(shí)例的狀態(tài),在本例中是一個(gè)高級(jí)配置和電源界面 (ACPI) - 枚舉的串行端口。
devcon status @root\rdp_mou\0000列出 Microsoft 終端服務(wù)器或終端服務(wù)鼠標(biāo)驅(qū)動(dòng)程序的狀態(tài)。
devcon status *PNP05*列出所有 COM 端口的狀態(tài)。
devcon update mydev.inf *pnp0501更新與硬件 ID
*pnp0501 嚴(yán)格匹配的所有設(shè)備,讓它們使用 Mydev.inf 中與硬件 ID
*pnp0501 關(guān)聯(lián)的最好的驅(qū)動(dòng)程序。
注意:即使系統(tǒng)上已經(jīng)存在更好的匹配項(xiàng),這一更新也將強(qiáng)制所有設(shè)備使用 Mydev.inf 中的驅(qū)動(dòng)程序。如果在獲得簽名之前,您想要在開(kāi)發(fā)過(guò)程中安裝驅(qū)動(dòng)程序的新版本,則這是很有用的。此更新僅影響與指定的硬件 ID 匹配的設(shè)備,不會(huì)影響到其子設(shè)備。如果指定的 .inf 文件未經(jīng)簽名,則 Windows 可能會(huì)顯示一個(gè)對(duì)話(huà)框,提示您確認(rèn)是否應(yīng)安裝此驅(qū)動(dòng)程序。如果需要重新啟動(dòng)計(jì)算機(jī),將報(bào)告這一情況并且 DevCon 返回一個(gè)級(jí)別 1 錯(cuò)誤。如果指定
-r,在需要重新啟動(dòng)計(jì)算機(jī)時(shí)就會(huì)自動(dòng)重啟。
注意