devcon工具使用
+ -

DevCon Status命令 CM_Get_DevNode_Status_Ex

2022-01-28 27 0

显示计算机上设备的驱动程序的 “正在运行”、”已停止” 或 “) 已禁用” 状态 (状态。 在本地和远程计算机上有效。

在指定的远程计算机上运行命令。 必须使用反斜杠。

注意 若要在远程计算机上运行 DevCon 命令,组策略设置必须允许即插即用服务在远程计算机上运行。 在运行 Windows Vista 和更高版本的 Windows 的计算机上,默认情况下组策略禁用对服务的远程访问。

命令格式

devcon [/m:\\computer] status {* | 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 /m:\\Server01 status *
devcon status pci*
devcon status "PCI\VEN_115D&DEV_0003&SUBSYS_0181115D"
devcon status =printer

使用示例

如果 DevCon 无法确定设备的状态,例如,当设备不再连接到计算机时,DevCon 将从状态显示中省略描述状态的行。

下面的示例显示成功的状态命令。 描述设备状态的文本以粗体显示。

STORAGE\VOLUME\1&30A96598&0&SIGNATURE80OFFSET7E0000LENGTH270987600
    Name: Generic volume
    Driver is running.
1 matching device(s) found.

与此相反,下面的示例演示了 DevCon 如何显示设备找不到的状态。 显示中缺少状态说明。

STORAGE\VOLUME\1&30A96598&0&SIGNATURE80OFFSET7E0000LENGTH270987600
    Name: Generic volume
1 matching device(s) found.

CM_Get_DevNode_Status_Ex相关代码

    ULONG status = 0;
    devInfoListDetail.cbSize = sizeof(devInfoListDetail);
    if((!SetupDiGetDeviceInfoListDetail(Devs,&devInfoListDetail)) ||
            ((cr = CM_Get_DevNode_Status_Ex(&status,&problem,DevInfo->DevInst,0,devInfoListDetail.RemoteMachineHandle))!=CR_SUCCESS)) {
        if ((cr == CR_NO_SUCH_DEVINST) || (cr == CR_NO_SUCH_VALUE)) {
            isPhantom = TRUE;
        } else {
            Padding(1);
            FormatToStream(stdout,MSG_DUMP_STATUS_ERROR);
            return FALSE;
        }
    }

可以看到,是通过CM_Get_DevNode_Status_Ex函数获取设备的状态的。

0 篇笔记 写笔记

WDDM 子设备关状态
WDDM中使用来DxgkDdiQueryChildStatus查询子设备的状态 InitialData.DxgkDdiQueryChildStatus = BddDdiQueryChildStatus;和其它的回调函数一样,最终的处理函数其实是BASIC_DIS......
NTSTATUS(驱动错误码)代码对照
使用Windows编程时,NSTATUSR状态码表:值错语码00000000STATUS_SUCCESS00000000STATUS_WAIT_000000001STATUS_WAIT_100000002STATUS_WAIT_200000003......
DevCon Status命令
显示计算机上设备的驱动程序的 “正在运行”、”已停止” 或 “) 已禁用” 状态 (状态。 在本地和远程计算机上有效。在指定的远程计算机上运行命令。 必须使用反斜杠。注意 若要在远程计算机上运行 DevCon 命令,组策略设置必须允许即插即用服务在远程计算机上运行。 在运行 Windows Vi......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!