硬件设备的监控处理之三——(USB设备的禁用和启用)

两种方法,

方法一 查找注册表

 

 

思路:首先枚举注册表路径"HKEY_LOCAL_MACHINE//Drivers//Active"下的子键,从子键中查找键项"Key"的值是否包含"Drivers//USB//ClientDrivers//Mass_Storage_Class"字段,如果包含再取该键的键项"Name"的值,获取名字devName后调用如下代码,实现禁用

 

HANDLE hnd = OpenStore(devName);//(L"DSK1:")

if(hnd == NULL)

{

::MessageBox(NULL, L"USB打开失败", L"notice", MB_OK );

return ;

}

BOOL ret = DismountStore(hnd);

CloseHandle(hnd);

 

流程:

    启动对话框的时候先调用EnumActiveDir枚举注册表项"HKEY_LOCAL_MACHINE//Drivers//Active"下的子键,然后调用 SearchAndDismountUsbStro(PREG_ITEM_NAME change_itemStruct)函数对USB存储设备进行dismount

    响应窗口回调函数WindowProc,当接收到WM_DEVICECHANGE消息时,判断是否接入或者移除了USB存储设备,弹出提示对话框,根据用户的选择来dismount或者不处理。

    启用的话就是重新插入设备

相关函数:

SearchAndDismountUsbStro

 

EnumActiveDir

 

WindowProc

 

 

方法二 存储设备处理

 

 

思路:

禁用:

    USB存储设备,如果存储设备被打开其它人就没办法使用即可实现禁用效果,并且将"System//StorageManager//Profiles//USBHDProfile";中写入键项  MountHidden= 1,dismount掉SD卡

启用:

    将"System//StorageManager//Profiles//SDMemory";中写入键项  MountHidden= 0,mountSD卡

     重新插入SD卡即可启用

 

 

禁用USB存储设备

 

启用USB存储设备

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值