专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 驱动开发

设备禁用与启用的有关问题,大侠请进来指点

发布时间:2010-06-14 17:25:12 文章来源:www.iduyao.cn 采编人员:星星草
设备禁用与启用的问题,大侠请进来指点
系统中有两个硬盘,第二个硬盘HD2支持PNP,
在程序中把硬盘HD2禁用,

然后想要在这个硬盘HD2再次插入(即连接到系统中的时候),
程序如何能够检测到该硬盘HD2的插入事件,
如果检测到该硬盘HD2的状态时被禁用(disabled)
那么程序就把硬盘HD2启用起来(Enable)

现在的问题主要是卡在两点:
1)如何检测到被禁用过的硬盘HD2插入的事件
2)检测到插入事件后如何判断硬盘HD2是被禁用的

补充说明:
根据实验的结果,如果把硬盘HD2禁用,然后拔下,再插上
WINDOWS是可以检测到HD2,
但是在设备管理器里面查看HD2的状态仍然是被禁用状态。

------解决方案--------------------
windows下应该是直接调用系统API吧。 帮LZ找了点资料。

这个你们有一些实际调用的例子,可以参考:http://hi.baidu.com/kent_edwin/blog/item/083dd23e080dc3ca7c1e713c.html

这个里面似乎包含了完整的API,需要那个调用就是:
http://blog.csdn.net/kiang3/article/details/7005811


------解决方案--------------------
驱动 不熟 帮顶
------解决方案--------------------
看不懂看看了解下
------解决方案--------------------
楼主想干嘛,硬盘禁用,原理就是卸载驱动,硬盘都是走pcie的,只要硬件还插着,从硬件上看肯定是可以看到硬盘的,不加载驱动就只能看不能用,这就是禁用了,如果想要使用,再启动啊,相当于reload一遍驱动,就可以用了,linux里直接找到驱动加载一下就可以了,应该更简单吧,没有终端操作。
------解决方案--------------------
不知道硬盘被禁用的信息是保存在哪,猜测是保存在硬盘的内部吧。windows本身似乎已经解决了LZ的问题了,即能检测到硬盘插入,也能检测到插入的硬盘是被禁用了。那如果是这样的话,只需要搞清楚对应内核驱动API的使用应该就差不多了。
但看了楼上的高手说的,也能解释得通。到底硬盘禁用是通过卸载驱动还是通过写标记信息到硬盘内部的,LZ可以找2个相同型号的硬盘,禁用其中一个,再插上另一个之前没有禁用的硬盘就能确认了。
不管是怎么样,反正是绕不过API的,只是这样确认了可以更清楚流程,更细化熟悉和查找的范围。
------解决方案--------------------
Hi 你好:

硬盘不知道是怎么搞的。
usb有hotplug的事件。驱动中有了event后会调用callusermodhelper。去执行一个应用层的app。在这个app里面Lz可已完成诸如清楚痕迹的操作。然后把mount计数清零或是减“1”。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: