DevCon DriverFiles命令
2022-01-28
105
0
显示指定设备的已安装 INF 文件和设备驱动程序文件的完整路径和文件名。 仅在本地计算机上有效。
命令格式
devcon driverfiles {* | ID [ID ...] | =class [ID [ID ...]]}
* 表示计算机上的所有设备。
ID 指定设备的所有或部分硬件 ID、兼容 ID 或设备实例 ID。 指定多个 ID 时,在每个 ID 之间键入一个空格。 包含字符和字符的(&) 必须用引号引起来。
以下特殊字符修改 ID 参数。
字符 | 说明 |
---|---|
匹配任何字符或无字符。 使用通配符 () 创建 ID 模式,例如磁盘。 | |
@ | 指示设备实例 ID,例如 @ROOT\FTDISK\0000 。 |
‘(单引号) | 与字符串在字面上 (与字符串在文本) 。 在字符串前加单引号以指示星号是 ID 名称的一部分,而不是通配符,例如 “*PNP0600”,其中*PNP0600 (包括星号) 是硬件 ID。 |
= class | 指定设备的设备类。 =字符串标识为类名。 |
还可以在类名后指定硬件 ID、兼容的 ID、设备实例 ID 或 ID 模式。 在每个 ID 或模式之间键入空格。 DevCon 在 类中查找与指定 ID 匹配的设备。
使用方法
devcon driverfiles *
devcon driverfiles FDC\GENERIC_FLOPPY_DRIVE pci*
devcon driverfiles =media
devcon driverfiles =media isapnp*
使用示例
devcon.exe driverfiles @"PCI\VEN_8086&DEV_A12F&SUBSYS_72708086&REV_31\3&11583659&0&A0"
输出为:
PCI\VEN_8086&DEV_A12F&SUBSYS_72708086&REV_31\3&11583659&0&A0
Name: Intel(R) USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
Driver installed from C:\Windows\INF\usbxhci.inf [Generic.Install]. 1 file(s) used by driver:
C:\Windows\system32\DRIVERS\USBXHCI.SYS
1 matching device(s) found.
实现原理
一种是通过SetupDiOpenDevRegKey打开注册表的方式,
另一种是通过
if(!SetupDiGetDeviceInstallParams(Devs, DevInfo, &deviceInstallParams)) {
return FALSE;
}
//
// Set the flags that tell SetupDiBuildDriverInfoList to just put the
// currently installed driver node in the list, and that it should allow
// excluded drivers. This flag introduced in WinXP.
//
deviceInstallParams.FlagsEx |= (DI_FLAGSEX_INSTALLEDDRIVER | DI_FLAGSEX_ALLOWEXCLUDEDDRVS);
if(SetupDiSetDeviceInstallParams(Devs, DevInfo, &deviceInstallParams)) {
//
// we were able to specify this flag, so proceed the easy way
// we should get a list of no more than 1 driver
//
if(!SetupDiBuildDriverInfoList(Devs, DevInfo, SPDIT_CLASSDRIVER)) {
return FALSE;
}
if (!SetupDiEnumDriverInfo(Devs, DevInfo, SPDIT_CLASSDRIVER,
0, DriverInfoData)) {
return FALSE;
}
//
// we've selected the current driver
//
}
更多详见:SetupAPI根据硬件ID获取驱动INF文件和驱动日期版本信息