wince强制卸载系统自启动驱动

本文记录了解决驱动调试期间卸载驱动的方法,通过查找并卸载指定设备驱动,有效释放资源。提供了卸载驱动的函数实现及使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写了个驱动,是开机自启动的。但是在调试的时候想卸载这个驱动释放其占用的某些资源,发现使用RegisterDevice这些重新加载然后再调用DeactivateDevice卸载却无效。后来就在网上找了一下。发现是可以实现这个效果的。下面把这个记录一下:

查找出设备驱动,然后卸装:

BOOL CD3GHelpDlg::Unload(CString strDev) { BOOL bRes = FALSE; HANDLE hFind = INVALID_HANDLE_VALUE; try { if(strDev.IsEmpty()){ return FALSE;//__leave; } //确定搜索的方式 DeviceSearchType searchType; if(strDev.GetAt(strDev.GetLength() - 1) == ':'){ searchType = DeviceSearchByLegacyName; } else{ searchType = DeviceSearchByDeviceName; } DEVMGR_DEVICE_INFORMATION devInfo = {0}; devInfo.dwSize = sizeof(devInfo); //寻找驱动的句柄 hFind = FindFirstDevice(searchType, strDev, &devInfo); if(hFind == INVALID_HANDLE_VALUE){ return FALSE;//__leave; } //卸载驱动 bRes = DeactivateDevice(devInfo.hDevice); FindClose(hFind); } //__finally{ catch(HANDLE e){ }; return bRes; }
卸载一个驱动,例如:

Unload(L"TGD1:");这样就可以把TGD1:的驱动卸载掉了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值