硬件设备的监控处理之三——(USB设备的禁用和启用)
来源:互联网 发布:java如何做app 编辑:程序博客网 时间:2024/05/17 02:38
两种方法,
方法一 查找注册表
思路:首先枚举注册表路径"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存储设备
- 硬件设备的监控处理之三——(USB设备的禁用和启用)
- 硬件设备的监控处理之二——(网卡的禁用和启用)
- 硬件设备的监控处理之四——SD卡的禁用和启用
- 硬件设备的监控处理之一——(串口的禁用和启用)
- 设备树中设备的禁用和启用
- Linux下的硬件驱动——USB设备
- Linux下的硬件驱动——USB设备
- Linux下的硬件驱动——USB设备
- Linux下的硬件驱动——USB设备
- Linux下的硬件驱动——USB设备
- Linux下的硬件驱动——USB设备
- 批处理禁用、启用USB设备如此简单
- 安全和防毒才是首要!禁用WinXP的USB设备
- USB学习系列之三——USB设备的枚举
- USB学习系列之三——USB设备的枚举
- 光驱,软驱,USB的禁用和启用
- 光驱,软驱,USB的禁用和启用
- Linux下的硬件驱动——USB设备(下)&& Linux下PCI设备驱动程序开发
- 【转】java到底是按值传递还是按引用传递?
- Android 面试题1
- 职业规划一家谈---何伟平
- Android 中的进程
- Java语言中的修饰符列表
- 硬件设备的监控处理之三——(USB设备的禁用和启用)
- 函数栈2:gcc及llvm中x86机器的栈分配
- Flyweight Design
- android 时间(TimePicker)日期(DatePicker)选择
- webfocus在移动终端上的应用DEMO
- Fedora / Redhat 软件包管理指南
- PKIX path building failed: unable to find valid certification path to requested target
- 硬件设备的监控处理之四——SD卡的禁用和启用
- Linux系统下临时文件TMP清理