批处理调用devcon确保虚拟驱动设备只存在安装一次

本文档描述了在使用wdm开发虚拟USB驱动时遇到的问题,即因批处理不断调用导致驱动重复安装,从而使设备名变为负数。为解决这个问题,作者提出了一种方案:先禁用现有设备,再尝试更新驱动,如果更新失败则安装。代码示例中展示了如何使用devcon工具执行这些操作,以确保驱动只安装一次,避免设备管理器的混乱。
摘要由CSDN通过智能技术生成

使用wdm开发了一个虚拟USB总线驱动,驱动安装后会虚拟出指定的子设备。
不过由于是手动安装的,所以如果不停地进行安装,驱动会安装多次,这样虚拟出来的设备就变成了,-2,3等这样的设备名。如果是手动操作,一切有眼睛的指导,肯定可以确保只安装一次。
但实际我们是通过批处理实现的,所以如果应用程序不停的调这个批处理,设备管理器会爆炸。

所以我们的操作是这样的,先进行驱动更新,如果更新失败,可以确定设备不存在,那么如果设备不存在,我们就再安装。如果存在,更新了也就更新了,由于是同一个驱动,实际PNP管理器好像就无视了这个操作。

在这里插入图片描述

具体的代码如下:

CD /d %~dp0
devcon.exe disable "USB\VID_8087&PID_0A2A&REV_0001"
devcon.exe disable "USB\VID_0A12&PID_0001&REV_8891"
devcon.exe enable  "USB\VID_0A12&PID_0001&REV_8891"
devcon.exe update vaudio.inf "*VaudioVA"
if %errorlevel% EQU 2 (devcon.exe install vaudio.inf "*MyVitualAudio")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

站长漫谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值