设备禁用与启用的有关问题,大侠请进来指点
发布时间: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”。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在驱动开发中出现 'struct' type redefinition 应该怎么办?? 大神们告诉小弟一下...
下面是我写的代码:
#pragma once
//**********...
-
大神们帮我看一下,我的代码错在什么地方? 加载成功,卸载就蓝屏了....
/*
*******************************************************...
-
sigma8653很罕见的问题
SOS!
sigma8653板子插上卡,上电后可以识别SD卡,然后软重启(reboot)就无法识别了!
奇怪的时,继续软重启一次又可...
-
Cancel自旋锁 起了什么作用?
发现IoCancelIrp 函数中
获取了Cancel自旋锁
设置了Irp->Cancel
调用了OnCancelIo函数
但是进入了On...
-
windows下 pnp设备的即插即用功能是怎么实现的?
看到 windows内核情景分析里说
加载驱动有三种方式 前两种是静态 分别是引导...
-
取消当前 IRP 执行的过程是怎样的?
#pragma code_seg("PAGE")
NTSTATUS MyWdmRead(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
...
-
vs2008中,link2001错误的问题,代码如下
vs2008中,link2001错误的问题,代码如下
#include <ntddk.h>
VOID OnUnload(IN PDRIVER_OBJ...
-
什么是内核缓冲区,用户缓冲区
比如网卡的内核缓冲区,那这个缓冲区是在pc内存还是在网卡的芯片上呢?
------解决方案---------------...
-
如果在一个函数中有提升IRQL的语句 是不是整个函数都不能放在分页内存中 ?
如果我在一个函数前使用了 #pragma code_seg("PAGE") ...
-
请教Linux下dm9000网卡驱动程序问题
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用...