Примеры консоли устройства (DevCon.exe)
Внимание
PnPUtil поставляется с каждым выпуском Windows и использует наиболее надежные и безопасные API и его использование рекомендуется. Дополнительные сведения об использовании PnPutil вместо devcon см. в разделе "Замена DevCon".
Примеры катагарий
В этом разделе приведены примеры следующих команд консоли устройств (DevCon.exe):
DevCon HwIDs
- Пример 1. Поиск всех идентификаторов оборудования
- Пример 2. Поиск идентификаторов оборудования с помощью шаблона
- Пример 3. Поиск идентификаторов оборудования с помощью класса
Классы DevCon
DevCon ListClass
- Пример 6. Вывод списка устройств в классе установки устройства
- Пример 7. Вывод списка устройств в нескольких классах
DevCon DriverFiles
- Пример 8. Вывод списка всех файлов драйверов
- Пример 9. Вывод списка файлов драйверов определенного устройства
DevCon DriverNodes
- Пример 10. Вывод списка пакетов драйверов по шаблону идентификатора оборудования
- Пример 11. Вывод списка пакетов драйверов по шаблону идентификатора экземпляра устройства
Ресурсы DevCon
- Пример 12. Перечисление ресурсов класса устройств
- Пример 13. Перечисление ресурсов устройства по идентификатору
Стек DevCon
- Пример 14. Отображение стека драйверов для устройств хранения
- Пример 15. Поиск класса установки устройства
- Пример 16. Отображение стека для связанных устройств
Состояние DevCon
- Пример 17. Отображение состояния всех устройств на локальном компьютере
- Пример 18. Отображение состояния устройства по идентификатору экземпляра устройства
- Пример 19. Отображение состояния связанных устройств
Поиск DevCon
- Пример 20. Поиск устройств по шаблону идентификатора оборудования
- Пример 21. Поиск устройств по идентификатору экземпляра устройства или классу
DevCon FindAll
DevCon ClassFilter
- Пример 23. Отображение драйверов фильтров для класса установки
- Пример 24. Добавление драйвера фильтра в класс установки
- Пример 25. Вставка драйвера фильтра в список классов
- Пример 26. Замена драйвера фильтра
- Пример 27. Изменение порядка драйверов фильтров
Включение DevCon
Отключение DevCon
- Пример 30. Отключение устройств по шаблону идентификатора
- Пример 31. Отключение устройств по идентификатору экземпляра устройства
DevCon Update and UpdateNI
Установка DevCon
Удаление DevCon
- Пример 35. Удаление устройств по шаблону идентификатора экземпляра устройства
- Пример 36. Удаление конкретного сетевого устройства
DevCon Rescan
Перезапуск DevCon
Перезагрузка DevCon
DevCon SetHwID
- Пример 40. Назначение идентификатора оборудования устаревшему устройству
- Пример 41. Добавление идентификатора оборудования ко всем устаревшим устройствам
- Пример 42. Удаление идентификатора оборудования со всех устаревших устройств
- Пример 43. Добавление, удаление и замена идентификаторов оборудования
- Пример 44. Принудительное обновление HAL
DevCon dp_add, dp_deleted, dp_enum
Примеры сведений
Пример 1. Поиск всех идентификаторов оборудования
Так как операции DevCon используют идентификаторы и шаблоны идентификаторов для идентификации устройств, распространенный первый шаг при использовании DevCon — создание файла ссылок на идентификатор оборудования для устройств на компьютере.
Следующая команда использует операцию DevCon HwIDs , которая возвращает идентификаторы и описание устройства. Он использует дикий карта символ (*) для представления всех устройств на локальном компьютере.
devcon hwids *
Так как выходные данные являются длительными и часто используются, сохраните выходные данные в текстовом файле для ссылки.
Следующая команда использует дикий карта символ (*) для представления всех устройств на компьютере. Он использует символ перенаправления (>) для сохранения выходных данных команды в файле hwids.txt.
devcon hwids * > hwids.txt
Пример 2. Поиск идентификаторов оборудования с помощью шаблона
Чтобы найти идентификаторы оборудования определенного устройства, введите идентификатор оборудования или шаблон, совместимый идентификатор или шаблон, идентификатор экземпляра устройства или шаблон или имя класса установки устройства.
Следующая команда использует операцию DevCon HwIDs и шаблон для поиска аппаратных идентификаторов дискового диска на компьютере. (Пользователь предполагает, что шаблон отображается в одном из идентификаторов устройства.) Команда использует дикий карта символ (*) для представления всех символов, которые могут предшествовать или следовать за словом "floppy" в любом из идентификаторов.
devcon hwids *floppy*
В ответ DevCon отображает идентификатор экземпляра устройства, идентификатор оборудования и совместимый идентификатор диска floppy на компьютере. Эти идентификаторы можно использовать в последующих командах DevCon.
FDC\GENERIC_FLOPPY_DRIVE\5&39194F6D&0&0
Name: Floppy disk drive
Hardware ID's:
FDC\GENERIC_FLOPPY_DRIVE
Compatible ID's:
GenFloppyDisk
1 matching device(s) found.
В этом случае фраза "floppy" возникает в идентификаторе оборудования или совместимом идентификаторе только одного устройства на компьютере. Если это происходит в идентификаторе нескольких устройств, все устройства с "floppy" в их идентификаторах отображаются в выходных данных.
Пример 3. Поиск идентификаторов оборудования с помощью класса
Следующая команда использует операцию DevCon HwIDs и класс установки устройства для поиска аппаратных идентификаторов всех устройств в классе установки устройств "Порты". Знак равенства (=) перед именем класса указывает, что это класс, а не идентификатор.
devcon hwids =ports
В ответ DevCon отображает идентификаторы оборудования и совместимые идентификаторы трех устройств в классе установки портов.
ACPI\PNP0401\4&B4063F4&0
Name: ECP Printer Port (LPT1)
Hardware ID's:
ACPI\PNP0401
*PNP0401
ACPI\PNP0501\1
Name: Communications Port (COM1)
Hardware ID's:
ACPI\PNP0501
*PNP0501
ACPI\PNP0501\2
Name: Communications Port (COM2)
Hardware ID's:
ACPI\PNP0501
*PNP0501
3 matching device(s) found.
Пример 4. Перечисление классов на локальном компьютере
Так как операции DevCon могут использовать класс установки устройства для идентификации устройств, полезно создать эталонный файл классов установки устройств на компьютере.
Следующая команда использует операцию DevCon Classes , которая возвращает список и описание всех классов на компьютере.
devcon classes
Так как выходные данные являются длительными и часто используются, сохраните выходные данные в текстовом файле для ссылки.
Следующая команда отображает все классы устройств на компьютере. Он использует символ перенаправления (>) для сохранения выходных данных команды в файле classes.txt.
devcon classes > classes.txt
Пример 6. Вывод списка устройств в классе установки устройства
Следующая команда использует операцию DevCon ListClass для перечисления устройств в Net, класса установки устройства для сетевых адаптеров.
devcon listclass net
В ответ DevCon отображает идентификатор экземпляра устройства и описание каждого устройства в классе установки Net.
Listing 6 device(s) for setup class "Net" (Network adapters).
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000 : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000 : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000 : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000 : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000 : Direct Parallel
Это отображение, хотя и интересно, не предоставляет аппаратные идентификаторы устройств в классе установки Net. Следующая команда использует операцию DevCon HwIDs для перечисления устройств в классе установки Net. В команде DevCon HwIDs имя класса предшествует знак равенства (=), чтобы указать, что это класс, а не идентификатор.
devcon hwids =net
В результате отображается список устройств в классе Net и содержится идентификатор экземпляра устройства, идентификаторы оборудования и совместимые идентификаторы устройств в классе.
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0
Name: 3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible)
Hardware ID's:
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028
PCI\VEN_10B7&DEV_9200&CC_020000
PCI\VEN_10B7&DEV_9200&CC_0200
Compatible ID's:
PCI\VEN_10B7&DEV_9200&REV_78
PCI\VEN_10B7&DEV_9200
PCI\VEN_10B7&CC_020000
PCI\VEN_10B7&CC_0200
PCI\VEN_10B7
PCI\CC_020000
PCI\CC_0200
ROOT\MS_L2TPMINIPORT\0000
Name: WAN Miniport (L2TP)
Hardware ID's:
ms_l2tpminiport
ROOT\MS_NDISWANIP\0000
Name: WAN Miniport (IP)
Hardware ID's:
ms_ndiswanip
ROOT\MS_PPPOEMINIPORT\0000
Name: WAN Miniport (PPPOE)
Hardware ID's:
ms_pppoeminiport
ROOT\MS_PPTPMINIPORT\0000
Name: WAN Miniport (PPTP)
Hardware ID's:
ms_pptpminiport
ROOT\MS_PTIMINIPORT\0000
Name: Direct Parallel
Hardware ID's:
ms_ptiminiport
6 matching device(s) found.
Пример 7. Вывод списка устройств в нескольких классах
Следующая команда использует операцию DevCon ListClass для перечисления устройств в классах DiskDrive, CDROM и TapeDrive.
devcon listclass diskdrive cdrom tapedrive
В ответ DevCon отображает устройства в этих классах.
Listing 1 device(s) for setup class "DiskDrive" (Disk drives).
IDE\DISKWDC_WD204BA_____________________________16.13M16\4457572D414D3730323136333938203120202020: WDC WD204BA
Listing 1 device(s) for setup class "CDROM" (DVD/CD-ROM drives).
IDE\CDROMSAMSUNG_DVD-ROM_SD-608__________________2.2_____\4&13B4AFD&0&0.0.0: SAMSUNG DVD-ROM SD-608
No devices for setup class "TapeDrive" (Tape drives).
Пример 8. Вывод списка всех файлов драйверов
Следующая команда использует операцию DevCon DriverFiles для перечисления имен файлов драйверов, которые устройства используют в системе. Команда использует дикий символ карта (*) для указания всех устройств в системе. Так как выходные данные обширны, команда использует символ перенаправления (>) для перенаправления выходных данных в ссылочный файл, driverfiles.txt.
devcon driverfiles * > driverfiles.txt
Пример 9. Вывод списка файлов драйверов определенного устройства
Следующая команда использует операцию DevCon DriverFiles для поиска драйвера устройства, который использует устройство мыши на локальном компьютере. Он определяет устройство по одному из его аппаратных идентификаторов, HID\Vid_045e&Pid_0039&Rev_0121. Идентификатор оборудования заключен в кавычки, так как он включает в себя амперсанд (>).
devcon driverfiles "HID\Vid_045e&Pid_0039&Rev_0121"
В ответ DevCon отображает два драйвера устройства, поддерживающие устройство мыши.
HID\VID_045E&PID_0039\6&DC36FDE&0&0000
Name: Microsoft USB IntelliMouse Optical
Driver installed from c:\windows\inf\msmouse.inf [HID_Mouse_Inst]. 2 file(s)
used by driver:
C:\WINDOWS\System32\DRIVERS\mouhid.sys
C:\WINDOWS\System32\DRIVERS\mouclass.sys
1 matching device(s) found.
Пример 10. Вывод списка пакетов драйверов по шаблону идентификатора оборудования
Следующая команда использует команду DevCon DriverNodes и шаблон идентификатора для перечисления узлов драйверов для перечисляемых программного обеспечения устройств. Шаблоны полезны для поиска сведений об аналогичных устройствах, которые могут не находиться в одном классе установки.
Следующая команда использует шаблон идентификатора sw\* для указания устройств, идентификаторы которых оборудования или совместимые идентификаторы начинаются с "sw", то есть устройства, перечисляемые программными средствами.
devcon drivernodes sw*
В ответ DevCon отображает узлы драйверов для перечисленных программного обеспечения устройств в системе.
SW\{A7C7A5B0-5AF3-11D1-9CED-00A024BF0407}\{9B365890-165F-11D0-A195-0020AFD156E4}
Name: Microsoft Kernel System Audio Device
DriverNode #0:
Inf file is c:\windows\inf\wdmaudio.inf
Inf section is WDM_SYSAUDIO
Driver description is Microsoft Kernel System Audio Device
Manufacturer name is Microsoft
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002244
Inf is digitally signed
SW\{B7EAFDC0-A680-11D0-96D8-00AA0051E51D}\{9B365890-165F-11D0-A195-0020AFD156E4}
Name: Microsoft Kernel Wave Audio Mixer
DriverNode #0:
Inf file is c:\windows\inf\wdmaudio.inf
Inf section is WDM_KMIXER
Driver description is Microsoft Kernel Wave Audio Mixer
Manufacturer name is Microsoft
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002244
Inf is digitally signed
SW\{CD171DE3-69E5-11D2-B56D-0000F8754380}\{9B365890-165F-11D0-A195-0020AFD156E4}
Name: Microsoft WINMM WDM Audio Compatibility Driver
DriverNode #0:
Inf file is c:\windows\inf\wdmaudio.inf
Inf section is WDM_WDMAUD
Driver description is Microsoft WINMM WDM Audio Compatibility Driver
Manufacturer name is Microsoft
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002244
Inf is digitally signed
3 matching device(s) found.
Пример 11. Вывод списка пакетов драйверов по шаблону идентификатора экземпляра устройства
Следующая команда использует операцию DevCon DriverNodes для перечисления пакетов драйверов всех устройств, идентификаторы экземпляров устройства которых начинаются с ROOT\MEDIA, то есть устройств в подразделе реестра Enum\Root\Media. Команда использует символ (@) для указания того, что фраза находится в идентификаторе экземпляра устройства.
devcon drivernodes @ROOT\MEDIA*
В ответ DevCon отображает узлы драйверов устройств, идентификатор экземпляра устройства которых начинается с root\MEDIA.
ROOT\MEDIA\MS_MMACM
Name: Audio Codecs
DriverNode #0:
Inf file is c:\windows\inf\wave.inf
Inf section is MS_MMACM
Driver description is Audio Codecs
Manufacturer name is (Standard system devices)
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002240
Inf is digitally signed
ROOT\MEDIA\MS_MMDRV
Name: Legacy Audio Drivers
DriverNode #0:
Inf file is c:\windows\inf\wave.inf
Inf section is MS_MMDRV
Driver description is Legacy Audio Drivers
Manufacturer name is (Standard system devices)
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002240
Inf is digitally signed
ROOT\MEDIA\MS_MMMCI
Name: Media Control Devices
DriverNode #0:
Inf file is c:\windows\inf\wave.inf
Inf section is MS_MMMCI
Driver description is Media Control Devices
Manufacturer name is (Standard system devices)
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002240
Inf is digitally signed
ROOT\MEDIA\MS_MMVCD
Name: Legacy Video Capture Devices
DriverNode #0:
Inf file is c:\windows\inf\wave.inf
Inf section is MS_MMVCD
Driver description is Legacy Video Capture Devices
Manufacturer name is (Standard system devices)
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002240
Inf is digitally signed
ROOT\MEDIA\MS_MMVID
Name: Video Codecs
DriverNode #0:
Inf file is c:\windows\inf\wave.inf
Inf section is MS_MMVID
Driver description is Video Codecs
Manufacturer name is (Standard system devices)
Provider name is Microsoft
Driver date is 7/1/2001
Driver version is 5.1.2535.0
Driver node rank is 0
Driver node flags are 00002240
Inf is digitally signed
5 matching device(s) found.
Пример 12. Перечисление ресурсов класса устройств
Следующая команда использует операцию DevCon Resources для отображения ресурсов, выделенных устройствам в классе установки устройств Hdc. Этот класс включает контроллеры интегрированной среды разработки. Знак равенства (=) добавляется в "hdc", чтобы указать, что это класс, а не идентификатор.
devcon resources =hdc
В ответ DevCon перечисляет ресурсы, выделенные контроллерам интегрированной среды разработки на локальном компьютере.
PCI\VEN_8086&DEV_244B&SUBSYS_00000000&REV_02\3&29E81982&0&F9
Name: Intel(r) 82801BA Bus Master IDE Controller
Device is currently using the following resources:
IO : ffa0-ffaf
PCIIDE\IDECHANNEL\4&37E53584&0&0
Name: Primary IDE Channel
Device is currently using the following resources:
IO : 01f0-01f7
IO : 03f6-03f6
IRQ : 14
PCIIDE\IDECHANNEL\4&37E53584&0&1
Name: Secondary IDE Channel
Device is currently using the following resources:
IO : 0170-0177
IO : 0376-0376
IRQ : 15
3 matching device(s) found.
Пример 13. Перечисление ресурсов устройства по идентификатору
Следующая команда использует операцию DevCon Resources для перечисления ресурсов, выделенных системным таймером. Команда использует идентификатор оборудования системного таймера, ACPI\PNP0100, чтобы указать устройство.
devcon resources *PNP0100
В ответ DevCon отображает ресурсы системного таймера.
ROOT\*PNP0100\PNPBIOS_8
Name: System timer
Device has the following resources reserved:
IO : 0040-005f
IRQ : 0
1 matching device(s) found.
Следующая команда использует идентификатор экземпляра устройства системного таймера в команде ресурсов DevCon. Символ (@) указывает, что строка является идентификатором экземпляра устройства, а не идентификатором оборудования или совместимым идентификатором.
devcon resources "@ACPI\PNP0100\4&b4063f4&0"
Пример 14. Отображение стека драйверов для устройств хранения
Следующая команда использует операцию DevCon Stack для поиска устройств в классе установки томов и отображения ожидаемого стека драйверов для этих устройств. Знак равенства (=) указывает, что строка является именем класса.
devcon stack =Volume
В ответ DevCon отображает ожидаемый стек для устройств в классе Volume. Возвращаемые данные включают идентификатор экземпляра устройства и описание каждого устройства, GUID и имя класса установки устройства, имена драйверов верхних и нижних фильтров и управление службами (при наличии).
STORAGE\VOLUME\1&30A96598&0&SIGNATURE32323533OFFSET271167600LENGTH6E00D0C00
Name: Generic volume
Setup Class: {71A27CDD-812A-11D0-BEC7-08002BE2092F} Volume
Class upper filters:
VolSnap
Controlling service:
(none)
STORAGE\VOLUME\1&30A96598&0&SIGNATURE32323533OFFSET7E00LENGTH27115F800
Name: Generic volume
Setup Class: {71A27CDD-812A-11D0-BEC7-08002BE2092F} Volume
Class upper filters:
VolSnap
Controlling service:
(none)
2 matching device(s) found.
Пример 15. Поиск класса установки устройства
Операция DevCon Stack возвращает класс установки устройства в дополнение к драйверам верхнего и нижнего фильтров. Следующие команды находят класс установки интерфейса порта принтера, найдя его идентификатор экземпляра устройства, а затем с помощью идентификатора экземпляра устройства для поиска его класса установки.
Следующая команда использует операцию DevCon HwIDs для поиска идентификатора экземпляра устройства интерфейса порта принтера с помощью "LPT", фразы в идентификаторе оборудования порта принтера.
devcon hwids *lpt*
В ответ DevCon возвращает идентификатор экземпляра устройства (отображаемый в полужирном тексте) и идентификатор оборудования интерфейса порта принтера.
LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1
Name: Printer Port Logical Interface
Hardware ID's:
LPTENUM\MicrosoftRawPort958A
MicrosoftRawPort958A
1 matching device(s) found.
Следующая команда использует операцию DevCon Stack для поиска класса установки устройства устройства, представленного идентификатором экземпляра устройства. Символ (@) определяет идентификатор как идентификатор экземпляра устройства. Идентификатор заключен в кавычки, так как он включает амперсанды символов.
devcon stack "@LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1"
В ответ DevCon отображает стек драйверов для интерфейса порта принтера, включая класс. Отображение показывает, что порт принтера находится в классе System.
LPTENUM\MICROSOFTRAWPORT\5&CA97D7E&0&LPT1
Name: Printer Port Logical Interface
Setup Class: {4D36E97D-E325-11CE-BFC1-08002BE10318} System
Controlling service:
(none)
1 matching device(s) found.
Пример 16. Отображение стека для связанных устройств
Следующая команда использует операцию DevCon Stack для отображения ожидаемого стека для устройств драйвера мини-порта. Он ищет устройства в классе установки Net, имеющие "минипорт" в идентификаторе оборудования или совместимом идентификаторе.
Обратите внимание, что эта команда сначала ограничивает поиск в классе установки Net, а затем находит строку miniport. Он не находит устройства, отличные от устройств в классе установки Net.
devcon stack =net *miniport*
В ответ DevCon отображает ожидаемый стек для драйверов минипорта.
ROOT\MS_L2TPMINIPORT\0000
Name: WAN Miniport (L2TP)
Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
Controlling service:
Rasl2tp
ROOT\MS_PPPOEMINIPORT\0000
Name: WAN Miniport (PPPOE)
Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
Controlling service:
RasPppoe
Lower filters:
NdisTapi
ROOT\MS_PPTPMINIPORT\0000
Name: WAN Miniport (PPTP)
Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
Controlling service:
PptpMiniport
Lower filters:
NdisTapi
ROOT\MS_PTIMINIPORT\0000
Name: Direct Parallel
Setup Class: {4D36E972-E325-11CE-BFC1-08002BE10318} Net
Controlling service:
Raspti
Lower filters:
PtiLink
4 matching device(s) found.
Пример 17. Отображение состояния всех устройств
Следующая команда использует операцию DevCon Status для поиска состояния всех устройств на локальном компьютере. Затем он сохраняет состояние в файле status.txt для ведения журнала или более поздней проверки. Команда использует дикий карта символ (*) для представления всех устройств и символа перенаправления (>) для перенаправления выходных данных в файл status.txt.
devcon status * > status.txt
Пример 18. Отображение состояния устройства по идентификатору экземпляра устройства
Самый надежный способ найти состояние конкретного устройства — использовать идентификатор экземпляра устройства.
Следующая команда использует идентификатор экземпляра устройства контроллера ввода-вывода на локальном компьютере в команде DevCon Status . Команда содержит идентификатор экземпляра устройства, PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00. Префикс символа (@) идентификатор определяет строку как идентификатор экземпляра устройства. Идентификатор должен быть заключен в кавычки, так как он включает амперсанды символов.
devcon status "@PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00"
В ответ DevCon отображает состояние контроллера ввода-вывода.
PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_02\3&29E81982&0&00
Name: Intel(R) 82815 Processor to I/O Controller - 1130
Driver is running.
1 matching device(s) found.
Пример 19. Отображение состояния связанных устройств
Следующая команда использует операцию DevCon Status для отображения состояния определенных устройств, связанных с хранилищем. Он ищет следующие устройства:
Диск, GenDisk
Диск CD-ROM, GenCdRom
Диск floppy, FDC\GENERIC_FLOPPY_DRIVE
Тома, STORAGE\Volume
Диспетчер логических дисков, ROOT\DMIO
Диспетчер томов, ROOT\FTDISK
Контроллер диска Floppy, ACPI\PNP0700
В команде каждый идентификатор отделяется от других по пробелам. Обратите внимание, что идентификаторы GenDisk и GenCdRom совместимы, а другие идентификаторы — это аппаратные идентификаторы.
devcon status GenDisk GenCdRom FDC\GENERIC_FLOPPY_DRIVE STORAGE\Volume ROOT\DMIO ROOT\FTDISK ACPI\PNP0700
В ответ DevCon отображает состояние каждого устройства.
FDC\GENERIC_FLOPPY_DRIVE\1&3A2146F1&0&0
Name: Floppy disk drive
Driver is running.
IDE\CDROMSAMSUNG_DVD-ROM_SD-608__________________2.2_____\4&13B4AFD&0&0.0.0
Name: SAMSUNG DVD-ROM SD-608
Driver is running.
IDE\DISKWDC_WD204BA_____________________________16.13M16\4457572D414D373032313633393820312
0202020
Name: WDC WD204BA
Driver is running.
ROOT\DMIO\0000
Name: Logical Disk Manager
Driver is running.
ROOT\FLOPPYDISK\0000
Device has a problem: 28.
ROOT\FLOPPYDISK\0002
Device has a problem: 01.
ROOT\FLOPPYDISK\0003
Device has a problem: 01.
ROOT\FLOPPYDISK\0004
Device is currently stopped.
ROOT\FTDISK\0000
Name: Volume Manager
Driver is running.
STORAGE\VOLUME\1&30A96598&0&SIGNATUREEA1AA9C7OFFSET1770DF800LENGTH3494AEA00
Name: Generic volume
Driver is running.
STORAGE\VOLUME\1&30A96598&0&SIGNATUREEA1AA9C7OFFSET7E00LENGTH1770CFC00
Name: Generic volume
Driver is running.
11 matching device(s) found.
Пример 20. Поиск устройств по шаблону идентификатора оборудования
Следующая команда использует операцию DevCon Find для поиска устройств мыши. В частности, команда ищет компьютер для устройств, идентификатор оборудования или совместимый идентификатор которого содержит "mou"., и не найдет драйвер "moose".
devcon find *mou*
В этом случае DevCon обнаружил два устройства мыши.
ROOT\*PNP0F03\1_0_21_0_31_0 : Microsoft PS/2 Mouse
ROOT\RDP_MOU\0000 : Terminal Server Mouse Driver
Так как все операции отображения DevCon также находят идентификаторы оборудования, вы можете использовать любую операцию отображения для поиска идентификаторов оборудования. Выберите операцию на основе содержимого, необходимого в выходных данных. Например, чтобы найти драйверы устройств, связанные с мышью, на локальном компьютере, отправьте следующую команду.
devcon driverfiles *mou*
В ответ DevCon находит устройства и перечисляет их драйверы.
HID\VID_045E&PID_0039\6&DC36FDE&0&0000
Name: Microsoft USB IntelliMouse Optical
Driver installed from c:\windows\inf\msmouse.inf [HID_Mouse_Inst]. 2 file(s) used by d
river:
C:\WINDOWS\System32\DRIVERS\mouhid.sys
C:\WINDOWS\System32\DRIVERS\mouclass.sys
ROOT\RDP_MOU\0000
Name: Terminal Server Mouse Driver
Driver installed from c:\windows\inf\machine.inf [RDP_MOU]. 2 file(s) used by driver:
C:\WINDOWS\System32\DRIVERS\termdd.sys
C:\WINDOWS\System32\DRIVERS\mouclass.sys
2 matching device(s) found.
Пример 21. Поиск устройств по идентификатору экземпляра устройства или классу
Следующие команды используют операцию DevCon Find для отображения всех устаревших устройств на локальном компьютере. Так как устаревшие устройства не имеют идентификатора оборудования, их необходимо искать по идентификатору экземпляра устройства (путь к реестру), ROOT\LEGACY или классу установки LegacyDriver.
Первая команда находит устаревшие драйверы по шаблону идентификатора экземпляра устройства. Шаблон идентификатора предустановлен символом (@) для указания идентификатора экземпляра устройства и дикого символа карта (*) для поиска всех устройств в подразделе ROOT\Legacy.
devcon find @root\legacy*
Вторая команда находит устаревшие устройства, выполнив поиск всех устройств в классе LegacyDriver.
devcon find =legacydriver
Обе команды создают одинаковые выходные данные, в этом случае найдите те же 27 устаревших устройств.
ROOT\LEGACY_AFD\0000 : AFD Networking Support Environment
ROOT\LEGACY_BEEP\0000 : Beep
ROOT\LEGACY_DMBOOT\0000 : dmboot
ROOT\LEGACY_DMLOAD\0000 : dmload
ROOT\LEGACY_FIPS\0000 : Fips
ROOT\LEGACY_GPC\0000 : Generic Packet Classifier
ROOT\LEGACY_IPSEC\0000 : ipsec
ROOT\LEGACY_KSECDD\0000 : ksecdd
ROOT\LEGACY_MNMDD\0000 : mnmdd
ROOT\LEGACY_MOUNTMGR\0000 : mountmgr
ROOT\LEGACY_NDIS\0000 : ndis
ROOT\LEGACY_NDISTAPI\0000 : Remote Access NDIS TAPI Driver
ROOT\LEGACY_NDISUIO\0000 : NDIS Usermode I/O Protocol
ROOT\LEGACY_NDPROXY\0000 : NDProxy
ROOT\LEGACY_NETBT\0000 : netbt
ROOT\LEGACY_NULL\0000 : Null
ROOT\LEGACY_PARTMGR\0000 : PartMgr
ROOT\LEGACY_PARVDM\0000 : ParVdm
ROOT\LEGACY_RASACD\0000 : Remote Access Auto Connection Driver
ROOT\LEGACY_RDPCDD\0000 : RDPCDD
ROOT\LEGACY_RDPWD\0000 : RDPWD
ROOT\LEGACY_TCPIP\0000 : tcpip
ROOT\LEGACY_TDPIPE\0000 : TDPIPE
ROOT\LEGACY_TDTCP\0000 : TDTCP
ROOT\LEGACY_VGASAVE\0000 : VgaSave
ROOT\LEGACY_VOLSNAP\0000 : VolSnap
ROOT\LEGACY_WANARP\0000 : Remote Access IP ARP Driver
27 matching device(s) found.
Пример 22. Поиск (и поиск всех) устройств в классе установки
Следующая команда использует операцию DevCon FindAll для поиска всех устройств на компьютере в классе установки Net. Знак равенства (=) указывает, что Net является классом установки, а не идентификатором.
devcon findall =net
В ответ DevCon выводит следующие семь устройств в классе установки Net. Первые шесть — это стандартные устройства драйвера минипорта. Седьмое устройство, асинхронный адаптер RAS, — это программное перечисленное устройство (SW\*), которое не установлено до тех пор, пока он не понадобится.
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast
Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000 : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000 : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000 : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000 : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000 : Direct Parallel
SW\{EEAB7790-C514-11D1-B42B-00805FC1270E}\ASYNCMAC : RAS Async Adapter
7 matching device(s) found.
Следующая команда сравнивает операции DevCon Find и DevCon FindAll, выполнив команду DevCon Find с теми же параметрами, что и предыдущая команда DevCon FindAll.
devcon find =net
В ответ DevCon выводит следующие шесть устройств в классе установки Net.
PCI\VEN_10B7&DEV_9200&SUBSYS_00BE1028&REV_78\4&BB7B4AE&0&60F0: 3Com 3C920 Integrated Fast
Ethernet Controller (3C905C-TX Compatible)
ROOT\MS_L2TPMINIPORT\0000 : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000 : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000 : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000 : WAN Miniport (PPTP)
ROOT\MS_PTIMINIPORT\0000 : Direct Parallel
6 matching device(s) found.
Прогнозируемо, команда DevCon Find , которая возвращает только установленные в настоящее время устройства, не перечисляет программное устройство, так как устройство не установлено.
Пример 23. Отображение драйверов фильтров для класса установки
Следующая команда использует операцию DevCon ClassFilter для отображения драйверов верхнего фильтра для класса установки DiskDrive. Так как эта команда не включает операторы классфильтратора, DevCon отображает драйверы фильтров для класса, но не изменяет их.
devcon classfilter DiskDrive upper
В ответ DevCon отображает драйверы верхнего фильтра для класса DiskDrive и подтверждает, что он не изменил их. В этом случае на экране показано, что устройства в классе установки DiskDrive используют драйвер PartMgr.sys верхнего фильтра.
Class filters unchanged.
PartMgr
Пример 24. Добавление драйвера фильтра в класс установки
Следующая команда использует операцию DevCon ClassFilter для добавления вымышленного фильтра Disklog.sys в список драйверов верхнего фильтра для класса установки DiskDrive.
Эта команда использует оператор add-after (+) ClassFilter для загрузки драйвера Disklog после драйвера PartMgr, чтобы он получил данные, которые PartMgr.sys уже обработаны.
При запуске команды виртуальный курсор размещается перед первым драйвером фильтра. Так как он не расположен на определенном драйвере, DevCon добавляет драйвер Disklog в конец списка драйверов фильтра.
Команда также использует параметр /r , который перезагружает систему, если необходимо сделать изменение фильтра класса эффективным.
devcon /r classfilter DiskDrive upper +Disklog
В ответ DevCon отображает текущие драйверы верхнего фильтра для класса DiskDrive.
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
Disklog
Если вы пропустили имя драйвера или попытаетесь добавить драйвер, который не установлен в системе, команда завершается ошибкой. DevCon не добавляет драйвер, если драйвер не зарегистрирован в качестве службы, то есть если драйвер не имеет подраздела в подразделе реестра служб (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services).
Следующая команда проверяет эту функцию защиты. Он пытается добавить Disklgg (вместо Disklog) в список верхних фильтров для класса DiskDrive. Выходные данные показывают, что команда завершается ошибкой.
devcon /r classfilter DiskDrive upper +Disklgg
devcon failed.
Пример 25. Вставка драйвера фильтра в список классов
Следующая команда использует операцию DevCon ClassFilter для добавления вымышленного драйвера фильтра MyFilter.sys в список драйверов верхних фильтров для класса установки DiskDrive. Команда помещает MyFilter.sys между PartMgr.sys и Disklog.sys в порядке загрузки.
devcon /r classfilter DiskDrive upper @Disklog -MyFilter
В следующем списке показаны драйверы фильтров для класса DiskDrive перед отправкой команды.
PartMgr
Disklog
Первый подкомманд, @Disklog, использует оператор размещения (@) для размещения виртуального курсора в драйвер фильтра disklog. Вторая подкоманда -MyFilter использует оператор add-before (-) для добавления MyFilter.sys до Disklog.sys.
Команда также использует параметр /r , который перезагружает систему, если необходимо сделать изменение фильтра класса эффективным.
Оператор позиционирования является важным в этом примере. Перед обработкой подкомандам класса DevCon виртуальный курсор находится в начале списка и не расположен на драйверах фильтров. Если оператор надстройки (+) используется, если курсор не расположен на драйвере, DevCon добавляет драйвер в начало списка. Если оператор надстройки (-) используется, если курсор не расположен на драйвере, он добавляет драйвер в конец списка.
В ответ DevCon отображает текущие драйверы верхнего фильтра для класса DiskDrive.
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
MyFilter
Disklog
Вы также можете использовать следующую команду, чтобы добавить драйвер MyFilter и разместить его между PartMgr и Disklog. В этом примере первый подкоманда , @PartMgr, помещает виртуальный курсор в драйвер фильтра PartMgr. Вторая подкоманда +MyFilter использует оператор add-after (+) для добавления MyFilter.sys после PartMgr.
devcon /r classfilter DiskDrive upper @PartMgr +MyFilter
Пример 26. Замена драйвера фильтра
Следующая команда использует операцию DevCon ClassFilter для замены исходной копии MyFilter.sys новой и улучшенной версией MyNewFilter.sys в списке драйверов фильтров для класса установки DiskDrive.
devcon /r classfilter DiskDrive upper !MyFilter +MyNewFilter
В следующем списке показаны драйверы фильтров для класса DiskDrive перед отправкой команды.
PartMgr
MyFilter
Disklog
Первый подкомманд использует оператор удаления (!) для удаления MyFilter из списка драйверов верхнего фильтра для класса DiskDrive. (Это не влияет на файл MyFilter.sys в каталоге C:\Windows\System32\Drivers.)
Вторая подкоманда использует оператор add-after (+) для размещения нового драйвера фильтра в позиции, занятой удаленным драйвером. Так как оператор удаления оставляет курсор в позиции, занятой удаленным фильтром, операторы надстройки до (-) и операторы надстройки (+) имеют тот же эффект.
Команда также использует параметр /r , который перезагружает систему, если необходимо сделать изменение фильтра класса эффективным.
В ответ DevCon отображает новую конфигурацию фильтра классов для класса DiskDrive.
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
MyNewFilter
Disklog
Пример 27. Изменение порядка драйверов фильтров
Следующая команда использует операцию DevCon ClassFilter для изменения порядка драйверов фильтров для класса установки DiskDrive. В частности, он изменяет порядок второго и третьего драйверов фильтров.
devcon /r classfilter DiskDrive upper !Disklog =@PartMgr +Disklog
В следующем списке показаны драйверы фильтров для класса DiskDrive перед отправкой команды. Он также показывает предполагаемый результат команды.
Перед | После |
---|---|
PartMgr | PartMgr |
MyNewFilter | Журнал дисков |
Журнал дисков | MyNewFilter |
Первый подкомманд использует оператор удаления (!) для удаления disklog из списка. Вторая подкоманда использует оператор start (=) для перемещения виртуального курсора обратно в начальную позицию, а затем использует оператор размещения (@) для размещения курсора на драйвере PartMgr. Оператор запуска необходим, так как виртуальный курсор перемещается только вперед по списку. Последняя подкоманда использует оператор add-after (+) для добавления disklog после PartMgr.
В ответ DevCon отображает новую конфигурацию фильтра классов для класса DiskDrive.
Class filters changed. Class devices must be restarted for changes to take effect.
PartMgr
Disklog
MyNewFilter
Пример 28. Включение конкретного устройства
Следующая команда использует операцию DevCon Enable , чтобы включить программируемый контроллер прерываний, который был отключен для исправления системной проблемы. Так как идентификатор оборудования контроллера *PNP0000 включает звездочку, команда использует одинарный символ кавычки (') для направления DevCon для поиска идентификатора оборудования точно так же, как указано в команде. В противном случае звездочка будет интерпретирована как дикий карта символ.
devcon enable '*PNP0000
В ответ DevCon отображает идентификатор экземпляра устройства и объясняет, что для включения устройства необходимо перезагрузить систему.
ACPI\PNP0000\4&B4063F4&0 : Enabled on reboot
Not all of 1 device(s) enabled, at least one requires reboot to complete the operation.
Вы можете реагировать, перезагрузив систему вручную или с помощью операции Перезагрузки DevCon.
Следующая команда добавляет параметр /r в предыдущую команду. Параметр /r перезагружает систему только в том случае, если для завершения операции требуется перезагрузка.
devcon /r enable '*PNP0000
В ответ DevCon позволяет устройству, а затем перезагружает систему, чтобы сделать включение эффективным.
При запуске системы используйте команду состояния DevCon, чтобы убедиться, что устройство включено.
devcon status '*PNP0000
ACPI\PNP0000\4&B4063F4&0
Name: Programmable interrupt controller
Driver is running.
Пример 29. Включение устройств по классам
Следующая команда включает все устройства принтера на компьютере, указав класс установки принтера в команде DevCon Enable . Команда включает параметр /r , который перезагружает систему, если необходимо сделать включение эффективным.
devcon /r enable =Printer
В ответ DevCon отображает идентификатор экземпляра устройства принтера, который он найден в классе принтера и сообщает, что он включен. Хотя команда включала параметр /r , система не перезагружалась, так как перезагрузка не требуется для включения принтера.
LPTENUM\HEWLETT-PACKARDDESKJET_1120C\1&7530F08&0&LPT1.4 : Enabled
1 device(s) enabled.
Пример 30. Отключение устройств по шаблону идентификатора
Следующая команда использует операцию DevCon Disable , чтобы отключить USB-устройства на локальном компьютере. Он определяет устройства по шаблону идентификатора оборудования (USB*). Этот шаблон будет соответствовать любому устройству, аппаратному идентификатору или совместимому идентификатору которого начинается с "USB". Команда включает параметр /r , который перезагружает систему, если необходимо сделать отключение эффективным.
Примечание. Прежде чем использовать шаблон идентификатора для отключения устройства, определите, какие устройства будут затронуты. Для этого используйте шаблон в команде отображения, например USB состояния разработки\* или hwids USB-адрес devcon hwids USB\*.
devcon /r disable USB*
В ответ DevCon отображает идентификаторы экземпляров устройства USB-устройств и сообщает, что они отключены. Хотя команда включала параметр /r , система не перезагружалась, так как перезагрузка не требуется для отключения устройств.
USB\ROOT_HUB\4&2A40B465&0
: Disabled
USB\ROOT_HUB\4&7EFA360&0
: Disabled
USB\VID_045E&PID_0039\5&29F428A4&0&2
: Disabled
3 device(s) disabled.
Пример 31. Отключение устройств по идентификатору экземпляра устройства
Следующая команда использует операцию DevCon Disable , чтобы отключить USB-устройства на локальном компьютере. Эта команда определяет устройства по идентификаторам экземпляра устройства, как указано символом (@), предшествующим каждому идентификатору. Каждый идентификатор экземпляра устройства отделяется от других по пробелу.
Кроме того, поскольку идентификаторы экземпляров устройства включают символ амперсанда (&), они заключены в кавычки. Команда включает параметр /r , который перезагружает систему, если необходимо сделать отключение эффективным.
devcon /r disable "@USB\ROOT_HUB\4&2A40B465&0" "@USB\ROOT_HUB\4&7EFA360&0" "@USB\VID_045E&PID_0039\5&29F428A4&0&2"
В ответ DevCon отображает идентификаторы экземпляров устройства USB-устройств и сообщает, что они отключены. Хотя команда включала параметр /r , система не перезагружалась, так как перезагрузка не требуется для отключения устройств.
USB\ROOT_HUB\4&2A40B465&0
: Disabled
USB\ROOT_HUB\4&7EFA360&0
: Disabled
USB\VID_045E&PID_0039\5&29F428A4&0&2
: Disabled
3 device(s) disabled.
Пример 32. Обновление драйвера для портов связи
Следующая команда использует операцию DevCon Update для замены текущего драйвера устройства для портов связи в системе с помощью тестового драйвера, указанного в файле test.inf. Команда влияет только на устройства, все аппаратные идентификаторы которых * PNP0501 (включая звездочку).
Эту команду можно использовать для замены подписанных драйверов в системе альтернативными драйверами для тестирования или устранения неполадок, а также для связывания устройств с самой новой версией одного и того же драйвера.
devcon update c:\windows\inf\test.inf *PNP0501
В ответ devCon отображает предупреждение о установке оборудования, объясняющее, что драйвер не прошел тестирование логотипа Windows. Если в диалоговом окне нажмите кнопку "Продолжить в любом случае", установка продолжается.
Затем DevCon отображает следующее сообщение об успешном выполнении.
Updating drivers for *PNP0501 from c:\windows\inf\test.inf.
Drivers updated successfully.
Для обновления драйверов можно также использовать операцию DevCon UpdateNI, неинтерактивную версию операции DevCon Update. Операция DevCon UpdateNI идентична операции DevCon Update, за исключением того, что она подавляет все запросы пользователей, для которых требуется ответ и предполагает ответ по умолчанию на запрос.
Следующая команда использует операцию DevCon UpdateNI для установки тестового драйвера.
devcon updateni c:\windows\inf\test.inf *PNP0501
В этом случае DevCon не отображает предупреждение о установке оборудования. Вместо этого предполагается ответ по умолчанию, остановка установки. В результате DevCon не может обновить драйверы и отобразить сообщение об ошибке.
Updating drivers for *PNP0501 from c:\windows\inf\test.inf.
devcon failed.
Пример 33. Установка устройства
Следующая команда использует операцию DevCon Install для установки устройства клавиатуры на локальном компьютере. Команда включает полный путь к INF-файлу для устройства (клавиатура.inf) и идентификатор оборудования (*PNP030b).
devcon /r install c:\windows\inf\keyboard.inf *PNP030b
В ответ DevCon сообщает, что он установил устройство, то есть он создал узел устройства для нового устройства и обновил файлы драйверов для устройства.
Device node created. Install is complete when drivers files are updated...
Updating drivers for *PNPO30b from c:\windows\inf\keyboard.inf
Drivers updated successfully.
Пример 34. Установка устройства с помощью автоматической установки
В следующем примере показано, как установить адаптер Microsoft Loopback во время автоматической установки Microsoft Windows XP.
Чтобы установить это устройство во время автоматической установки, начните с добавления следующих файлов на диск floppy: devcon.exe и netloop.inf (C:\Windows\inf\netloop.inf).
Затем в раздел [GUIRunOnce] файла автоматической установки добавьте следующую команду DevCon:
a:\devcon /r install a:\Netloop.inf '*MSLOOP
Эта команда определяет адаптер обратного цикла с помощью идентификатора оборудования *MSLOOP. Символ одной кавычки, предшествующий "*MSLOOP", сообщает DevCon интерпретировать строку буквально, то есть интерпретировать звездочку как часть идентификатора оборудования, а не как дикий карта символ.
Команда также указывает, что DevCon использует файл Netloop.inf (на диске floppy) в установке. Параметр /r перезагружает компьютер только в том случае, если перезагрузка необходима для завершения установки.
Наконец, добавьте параметры конфигурации сети в файл автоматической установки и запустите автоматическую настройку.
Пример 35. Удаление устройств по шаблону идентификатора экземпляра устройства
Следующая команда использует операцию DevCon Remove для удаления всех USB-устройств с компьютера. Он определяет устройства по шаблону идентификатора экземпляра устройства, который соответствует любому идентификатору экземпляра устройства (путь реестра), начинающимся со строки "USB\". Символ (@) отличает идентификатор экземпляра устройства от идентификатора оборудования или совместимого идентификатора. Команда также включает параметр /r , который перезагружает систему, если требуется для эффективной процедуры удаления.
Предупреждение
Перед удалением всех устройств с помощью шаблона определите, какие устройства затронуты. Для этого используйте шаблон в команде отображения, например devcon status @usb\*
или devcon hwids @usb\*
.
devcon /r remove @usb\*
В ответ DevCon отображает идентификатор экземпляра устройства удаленных устройств.
USB\ROOT_HUB\4&2A40B465&0 : Removed
USB\ROOT_HUB\4&7EFA360&0 : Removed
USB\VID_045E&PID_0039\5&29F428A4&0&2 : Removed
3 device(s) removed.
Пример 36. Удаление конкретного сетевого устройства
Следующая команда использует операцию DevCon Remove для удаления мини-порта NDISWAN с локального компьютера. Команда задает класс Net, а затем уточняет поиск, указывая устройства в классе, идентификатор оборудования или совместимый идентификатор которого включает "ndiswan". Команда также включает параметр /r , который перезагружает систему, если перезагрузка требуется для эффективной процедуры удаления.
Предупреждение перед удалением всех устройств с помощью шаблона определите, какие устройства будут затронуты. Для этого используйте шаблон в команде отображения, например devcon status =net *ndiswan
или devcon hwids =net *ndiswan*
.
devcon /r remove =net *ndiswan*
В ответ DevCon отображает идентификатор экземпляра устройства, которое оно удалило.
ROOT\MS_NDISWANIP\0000 : Removed 1 device(s) removed.
Пример 37. Проверка компьютера на наличие новых устройств
Следующая команда использует операцию DevCon Rescan для сканирования локального компьютера на новых устройствах.
devcon rescan
В ответ DevCon сообщает, что он сканировал систему, но не нашел новых устройств.
Scanning for new hardware.
Scanning completed.
Пример 38. Перезапуск устройства
Следующая команда использует операцию DevCon Restart для перезапуска адаптера обратного цикла на локальном компьютере. Команда ограничивает поиск классом установки Net и в этом классе указывает идентификатор экземпляра устройства адаптера петли ,@'ROOT\*MSLOOP\0000. Символ (@) определяет строку как идентификатор экземпляра устройства. Символ одной кавычки ('), который запрашивает литеральный поиск, запрещает DevCon интерпретировать звездочку в идентификаторе как дикий карта символ.
devcon restart =net @'ROOT\*MSLOOP\0000
В ответ DevCon отображает идентификатор экземпляра устройства и сообщает результат.
ROOT\*MSLOOP\0000 : Restarted
1 device(s) restarted.
Пример 39. Перезагрузка локального компьютера
Следующая команда использует операцию DevCon Reboot для перезагрузки операционной системы на локальном компьютере и связывания перезагрузки с установкой оборудования. В отличие от параметра /r операция перезагрузки DevCon не зависит от возвращаемого кода от другой операции.
Эту команду можно включить в скрипты и пакетные файлы, требующие перезагрузки системы.
devcon reboot
В ответ DevCon отображает сообщение о том, что он перезагрузит компьютер (перезагрузка локального компьютера).
DevCon использует стандартную функцию ExitWindowsEx для перезагрузки. Если пользователь имеет открытые файлы на компьютере или программе не закроется, система не перезагрузится, пока пользователь не ответил на системные запросы, чтобы закрыть файлы или завершить процесс.
Пример 40. Назначение идентификатора оборудования устаревшему устройству
Следующая команда использует операцию DevCon SetHwID для назначения аппаратного идентификатора, звукового сигнала для устаревшего устройства.
Команда использует идентификатор экземпляра устройства, ROOT\LEGACY_BEEP\0000, так как устаревшее устройство с сигналом не имеет идентификаторов оборудования или совместимых идентификаторов. Он использует символ (@) для указания того, что строка является идентификатором экземпляра устройства.
Команда не использует параметры символов для размещения идентификатора. По умолчанию DevCon добавляет новые идентификаторы оборудования в конец списка идентификаторов оборудования. В этом случае, так как устройство не имеет других аппаратных идентификаторов, размещение не имеет значения.
devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep
В ответ DevCon отображает сообщение, указывающее, что он добавляет сигнал в список идентификаторов оборудования для устройства. Он также отображает результирующий список идентификаторов оборудования. В этом случае в списке есть только один идентификатор оборудования.
ROOT\LEGACY_BEEP\0000 : beep
Modified 1 hardware ID(s).
Пример 41. Добавление идентификатора оборудования ко всем устаревшим устройствам
Следующая команда использует операцию DevCon SetHwID для добавления идентификатора оборудования, устаревшего кода в список аппаратных идентификаторов для всех устаревших устройств.
Команда использует - параметр символа для добавления нового идентификатора оборудования в конец списка идентификаторов оборудования для устройства, если для одного из устройств был создан предпочтительный идентификатор оборудования. Он также использует шаблон идентификатора экземпляра устройства, @ROOT\LEGACY\*
чтобы определить устаревшие устройства на компьютере, то есть все устройства, с которых начинается ROOT\LEGACY*
идентификатор экземпляра устройства.
devcon sethwid @ROOT\LEGACY* := -legacy
В ответ DevCon отображает результирующий список идентификаторов оборудования для всех затронутых устройств.
ROOT\LEGACY_AFD\0000 : legacy
ROOT\LEGACY_BEEP\0000 : beep,legacy
ROOT\LEGACY_CRCDISK\0000 : legacy
ROOT\LEGACY_DMBOOT\0000 : legacy
ROOT\LEGACY_DMLOAD\0000 : legacy
ROOT\LEGACY_FIPS\0000 : legacy
...
ROOT\LEGACY_WANARP\0000 : legacy
Modified 27 hardware ID(s).
После назначения того же идентификатора оборудования группе устройств можно использовать другие операции DevCon для просмотра и изменения устройств в одной команде.
Например, следующая команда отображает состояние всех устаревших устройств.
devcon status legacy
Пример 42. Удаление идентификатора оборудования со всех устаревших устройств
Следующая команда использует операцию DevCon SetHwID для удаления идентификатора оборудования, устаревшего кода из списка аппаратных идентификаторов для всех устаревших устройств.
Команда использует идентификатор оборудования, устаревшую версию, чтобы определить все устройства, имеющие этот идентификатор оборудования. Затем он использует параметр символа ! для удаления устаревшего идентификатора оборудования.
devcon sethwid legacy := !legacy
В ответ DevCon отображает результирующий список идентификаторов оборудования для всех затронутых устройств.
ROOT\LEGACY_AFD\0000 :
ROOT\LEGACY_BEEP\0000 : beep
ROOT\LEGACY_CRCDISK\0000 :
ROOT\LEGACY_DMBOOT\0000 :
ROOT\LEGACY_DMLOAD\0000 :
ROOT\LEGACY_FIPS\0000 :
...
ROOT\LEGACY_WANARP\0000 :
Modified 27 hardware ID(s).
Пример 43. Добавление, удаление и замена идентификаторов оборудования
В следующих примерах показано, как использовать различные функции операции DevCon SetHwID.
В этой серии используется вымышленное устройство, DeviceX с идентификатором экземпляра устройства, ROOT\DeviceX\0000. Перед использованием DevCon устройство имело следующий список аппаратных идентификаторов:
Hw3 Hw4
Следующая команда использует + символ для добавления Hw1 и Hw2 в начало списка аппаратных идентификаторов для DeviceX. Так как Hw2 уже отображается в списке, он перемещается, а не добавляется. Команда определяет устройство по идентификатору экземпляра устройства, как указано в символе (@) перед идентификатором.
devcon sethwid @ROOT\DEVICEX\0000 := +Hw1 Hw2
В ответ DevCon отображает новый список идентификаторов оборудования для устройства. Обратите внимание, что Hw1 и Hw2 отображаются в начале списка в указанном порядке.
ROOT\DEVICEX\0000 : Hw1,Hw2,Hw3,Hw4
Modified 1 hardware ID(s).
Кроме того, DevCon сообщает, что он изменил один список идентификаторов оборудования, то есть список идентификаторов оборудования одного устройства.
Следующая команда использует символ ! для удаления идентификатора оборудования Hw1 . Затем он перечисляет идентификатор оборудования Hw5 без параметра символа. Без параметров символов SetHwID добавляет идентификатор оборудования в конец списка идентификаторов оборудования для устройства.
Эта команда демонстрирует, что, в отличие от других параметров символов для операции DevCon SetHwID , символ ! применяется только к идентификатору оборудования, который он префиксирует.
devcon sethwid @ROOT\DeviceX\0000 := !Hw1 Hw5
В ответ DevCon отображает результирующий список идентификаторов оборудования для DeviceX.
ROOT\DEVICEX\0000 : Hw2,Hw3,Hw4,Hw5
Modified 1 hardware ID(s).
Следующая команда использует параметр = для замены всех аппаратных идентификаторов в списке deviceX одним идентификатором оборудования DevX.
devcon sethwid @ROOT\DeviceX\0000 := =DevX
В ответ DevCon отображает результирующий список идентификаторов оборудования для DeviceX.
ROOT\DEVICEX\0000 : DevX
Modified 1 hardware ID(s).
Сообщение об успешном выполнении указывает, что DevCon изменил идентификатор оборудования одного устройства.
Пример 44. Принудительное обновление HAL
В следующем примере показано, как использовать DevCon для обновления HAL на компьютере. В этом примере тестировщик хочет заменить API API UNIPROCESSOR, который лучше всего подходит для компьютера с многопроцессорным APIC HAL для тестирования.
Первая команда использует операцию DevCon SetHwID для изменения идентификатора оборудования HAL с acpiapic_up, идентификатора оборудования для haLs юнипроцессора на acpiapic_mp, идентификатор оборудования для многопроцессорных хэшей.
Необходимо изменить идентификатор оборудования, так как INF-файл для HAL включает драйверы как для однопроцессорных, так и для многопроцессорных hals. Система выбирает наиболее подходящий драйвер из INF-файла на основе идентификатора оборудования устройства. Если не изменить идентификатор оборудования, команда DevCon Update просто переустановит драйвер HAL юнипроцессора.
В следующей команде команда определяет HAL по идентификатору экземпляра ROOT \ACPI_HAL\0000, как указано символом @ , предшествующим идентификатору. Команда использует + символ, чтобы сделать acpiapic_mp первый идентификатор оборудования в списке для HAL. Затем он использует символ ! для удаления идентификатора оборудования acpiapic_up из списка идентификаторов для HAL.
devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up
В ответ DevCon отображает следующий новый список идентификаторов оборудования для HAL.
ROOT\ACPI_HAL\0000 : acpiapic_mp
Modified 1 hardware ID(s).
Следующая команда использует операцию DevCon Update для обновления драйвера для HAL.
devcon update c:\windows\inf\hal.inf acpiapic_mp
Затем DevCon отображает следующее сообщение об успешном выполнении.
Updating drivers for acpiapic_mp from c:\windows\inf\hal.inf.
Drivers updated successfully.
Пример 45. Добавление и удаление пакетов драйверов
В следующих примерах показано, как использовать DevCon для добавления, удаления и отображения сторонних пакетов драйверов (OEM) в хранилище драйверов.
Первая команда, команда DevCon Dp_add , копирует INF-файл для примера драйвера Тостера в хранилище драйверов WDK, то есть в каталог %Windir%\inf. Команда содержит полный путь к INF-файлу для примера драйвера Тостера.
Эта команда предназначена для сторонних драйверов и устройств oem, но вы можете использовать пример тостера для тестирования команд.
devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
В ответ DevCon сообщает, что он добавил INF-файл Тостера в хранилище драйверов и назвал его Oem2.inf.
Driver Package 'oem2.inf' added.
Перед копированием в хранилище драйверов Windows сравнивает двоичную версию INF-файла с двоичными версиями INF-файлов в хранилище драйверов, чтобы убедиться, что он не добавляет повторяющийся файл. Например, если повторить команду, чтобы добавить Тостер.inf в хранилище драйверов, DevCon не создает новый OEM*.inf-файл. Он просто сообщает имя существующего файла, как показано в следующих выходных данных DevCon.
devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
Driver Package 'oem2.inf' added.
devcon dp_add C:\WinDDK\5322\src\general\toaster\inf\i386\toaster.inf
Driver Package 'oem2.inf' added.
Чтобы удалить пакет драйвера для драйвера Тостера из хранилища драйверов, необходимо использовать имя OEM*.inf для драйвера. Чтобы найти имя файла драйвера, используйте команду DevCon Dp_enum .
Следующая команда содержит список всех пакетов драйверов OEM и некоторых их свойств.
devcon dp_enum
В ответ DevCon создает следующее отображение:
c:\WinDDK\5322\tools\devcon\i386>devcon dp_enum
The following 3rd party Driver Packages are on this machine:
oem2.inf
Provider: Microsoft
Class: unknown
Эта информация указывает на то, что пакет драйвера, предоставленный корпорацией Майкрософт, с неопределенным классом устройства (Тостером) называется OEM2.inf. Эти сведения можно использовать для удаления пакета драйвера, связанного с файлом.
Следующая команда удаляет файл OEM2.inf из хранилища драйверов, а также связанные с ним файлы INF (PNF) и каталога (CAT). Команда использует имя файла OEM*.inf.
devcon dp_delete oem2.inf
В ответ DevCon отображает сообщение, указывающее, что команда выполнена успешно:
Driver Package 'oem2.inf' deleted.
Имя файла OEM*.inf необходимо в команде DevCon Dp_delete . Если вы пытаетесь использовать исходное имя INF-файла, команда завершается ошибкой, как показано в следующем выходных данных DevCon.
devcon dp_delete C:\WinDDK\5322\src\general\toaster.inf
Deleting the specified Driver Package from the machine failed.
devcon failed.