阅读:3395回复:29
高分请指教,关于软驱状态的获得
我现在在做一个网管软件,想实现对光驱、软驱的控制,
我光驱是通过获得光驱的是否有盘如有盘并开始读时就锁定机器, 当光盘取出时,我也想通过些方法来实现对软驱的控制,但没能成功 ,我现在想用C\\C++中断函数来实现,但不知怎么获得软驱的读盘状态,请指教,先谢了 [编辑 - 5/11/04 by zhiyuan19840428] |
|
最新喜欢:zhleon... |
沙发#
发布于:2009-03-03 16:54
waqis 这样搞不好 不正规 影响效率而且不稳定
在产品中还是应该用正规的方法 |
|
板凳#
发布于:2004-07-21 08:54
我是新手,用了一下waqis的例子,觉得很奇怪,真不知他怎么实现的,厉害,佩服
|
|
地板#
发布于:2004-07-21 08:43
自己反汇编吧。。。。。 行,你够狠! ;) |
|
地下室#
发布于:2004-07-20 19:06
自己反汇编吧。。。。。
|
|
|
5楼#
发布于:2004-07-20 18:20
谁知道上面那个例子怎么实现的吗?一个驱动就做了这么多事
|
|
6楼#
发布于:2004-05-28 09:31
IOCTL_SIIMON_SETENABLEDEVICEFILTER
的作用是什么?你这个驱动好像要解除禁用一下子要解除好几, 如果我想按这个按钮解除光驱按另一个按钮解除软驱好像就不行 了还有我在我机器上出现过死机蓝屏现象 |
|
7楼#
发布于:2004-05-28 08:27
不要调用
DeviceIoControl(SysHandle, IOCTL_SIIMON_STOPSPY, 0, 0, 0, 0, &dwRet, NULL ); 仅重新调用一次 DeviceIoControl(SysHandle, IOCTL_SIIMON_SETDISABLEDEVICEFILTER, pdf, sizeof(_DEVICE_INFO)*2, 0, 0, &dwRet, NULL ); 就可以了. |
|
8楼#
发布于:2004-05-27 23:08
//关闭
if(LoadDeviceDriver( SYS_NAME, SYS_FILE, &SysHandle, &error )){ //删除禁用设备 DeviceIoControl(SysHandle, IOCTL_SIIMON_SETDISABLEDEVICEFILTER, 0, 0, 0, 0, &dwRet, NULL ); //停止监控 DeviceIoControl(SysHandle, IOCTL_SIIMON_STOPSPY, 0, 0, 0, 0, &dwRet, NULL ); } 这个好像把所有的设备都解除禁用了如果我想仅解除某一设备的禁用我用了如下语句但不行: //禁用 if(LoadDeviceDriver( SYS_NAME, driverfile, &SysHandle, &error )) { //删除禁用设备(光驱) _DEVICE_INFO* pdf = new _DEVICE_INFO[1]; if(pdf) { pdf[0].Type = _MULTI_DEVICE; strcpy(pdf[0].DeviceName, \"\\\\Device\\\\CdRom\"); DeviceIoControl(SysHandle, IOCTL_SIIMON_SETENABLEDEVICEFILTER, pdf, sizeof(_DEVICE_INFO), 0, 0, &dwRet, NULL ); delete pdf; } flag = DeviceIoControl(SysHandle, IOCTL_SIIMON_STOPSPY, 0, 0, 0, 0, &dwRet, NULL ); |
|
9楼#
发布于:2004-05-18 08:50
qq:293331
|
|
10楼#
发布于:2004-05-17 19:44
waqis你的QQ是多少我有几个问题要问你,能加我一下吗?
|
|
11楼#
发布于:2004-05-17 16:32
是不是说IoCreateService()创建一个驱动对象而AddDevice()创建一个设备对象并使用IoCreateService()创建的设备,其实说白了,也就这个设备使用同一个驱动
|
|
12楼#
发布于:2004-05-17 16:19
能说说驱动程序对象和设备对象之间的区别吗?
|
|
13楼#
发布于:2004-05-17 16:02
兄弟你就给我一段做为参考吧就算是为中国软件事业做贡献吧
[编辑 - 5/17/04 by zhiyuan19840428] |
|
14楼#
发布于:2004-05-17 15:59
拦截相关设备的irp就是了.
|
|
15楼#
发布于:2004-05-17 15:53
能把关于处理IOCTL_SIIMON_STARTSPY,IOCTL_SIIMON_STOPSPY的代码给我吗、?谢谢,让我明白是怎么回事,分我给我
|
|
16楼#
发布于:2004-05-17 15:49
i服了you!
源码不能给你,因为是公司产品中的一部分.(虽然是我写的,但版权应该属于公司吧,我怕被告呀.) |
|
17楼#
发布于:2004-05-17 15:44
能不能把siimon.sys的源码给我呀,或告诉我在那里能下到,谢谢了
|
|
18楼#
发布于:2004-05-17 15:42
怎么给呀,我不会!
|
|
19楼#
发布于:2004-05-17 15:32
我们对第一个例子稍做修改,如图2-9。这次我们的读请求将发往一个USB设备(USB设备插入USB hub,USB hub再插入主机控制器),因此,USB设备堆栈、hub设备堆栈、主机控制器设备堆栈将加入设备树。IRP_MJ_READ请求先穿过FiDO到达功能驱动程序,然后功能驱动程序生成一个或多个不同种类的IRP并发送到自己的PDO。USB设备的PDO驱动程序就是USBHUB.SYS,该驱动程序把这些IRP送到主机控制器堆栈的最上层驱动程序,跳过中间的USB集线器堆栈(含有两个驱动程序)。
我不明白为什么说USB设备的就是USBHUB.SYS,它是为什么能这些IRP送到直接主机控制器堆栈的最上层驱动程序 |
|
上一页
下一页