zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3316回复:29

高分请指教,关于软驱状态的获得

楼主#
更多 发布于:2004-05-11 21:50
我现在在做一个网管软件,想实现对光驱、软驱的控制,
我光驱是通过获得光驱的是否有盘如有盘并开始读时就锁定机器,
当光盘取出时,我也想通过些方法来实现对软驱的控制,但没能成功
,我现在想用C\\C++中断函数来实现,但不知怎么获得软驱的读盘状态,请指教,先谢了

[编辑 -  5/11/04 by  zhiyuan19840428]

最新喜欢:

zhleonixzhleon...
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-05-11 23:31
参考FILEMON
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-12 09:29
能说的详细的吗?filemom是什么在那里能找到呀
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2004-05-12 10:43
本站就有
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-12 14:06
在什么地方呀是不是要用到文件驱动呀,有没有比较简单的实现方法呀
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2004-05-12 16:33
可以用下面方法来禁用光驱,和软驱.

DWORD error;
HANDLE SysHandle = INVALID_HANDLE_VALUE;
DWORD dwRet;

//禁用
if(LoadDeviceDriver( SYS_NAME, SYS_FILE, &SysHandle, &error )){
//打开监控
DeviceIoControl(SysHandle, IOCTL_SIIMON_STARTSPY,
0, 0, 0, 0, &dwRet, NULL );

//添加禁用设备
_DEVICE_INFO* pdf = new _DEVICE_INFO[2];
if(pdf){
pdf[0].Type = _MULTI_DEVICE;
strcpy(pdf[0].DeviceName, \"\\\\Device\\\\CdRom\");
pdf[1].Type = _MULTI_DEVICE;
strcpy(pdf[1].DeviceName, \"\\\\Device\\\\Floppy\");

DeviceIoControl(SysHandle, IOCTL_SIIMON_SETDISABLEDEVICEFILTER,
pdf, sizeof(_DEVICE_INFO)*2, 0, 0, &dwRet, NULL );

delete pdf;
}
}

//关闭
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 );
}
附件名称/大小 下载次数 最后更新
2004-05-12_siimon.rar (7KB)  26
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-05-17 10:22
你好
我用你说的方法做了,但在LoadDeviceDriver()时系统提示找不到文件,但我已siimon.sys放在system32\\drivers\\,以及程序执行目录下了
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2004-05-17 12:49
CHAR driverPath[ MAX_PATH ];
TCHAR systemRoot[ MAX_PATH ];

GetEnvironmentVariable( \"SYSTEMROOT\", systemRoot, sizeof(systemRoot));

sprintf( driverPath, \"%s\\\\system32\\\\drivers\\\\%s\", systemRoot, SYS_FILE );

LoadDeviceDriver( SYS_NAME, driverPath, &SysHandle, &error );
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-05-17 15:10
谢谢我已经做好了,但我还是不太明白其中的原理,能把siimon.sys的源码给我吗、我的eamil:zhiyuan19840428@163.com
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-05-17 15:11
我现在正在学习驱动的编写,能给出一点学习意见吗?谢谢
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2004-05-17 15:30
用siimon.sys你还可以控制usb口(\"\\\\Device\\\\USBPDO\"),串口(\"\\\\Device\\\\Serial\"),并口(\"\\\\Device\\\\Parallel\")等.

兄弟,给分呀.
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于: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送到直接主机控制器堆栈的最上层驱动程序
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-05-17 15:42
怎么给呀,我不会!
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-05-17 15:44
能不能把siimon.sys的源码给我呀,或告诉我在那里能下到,谢谢了
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2004-05-17 15:49
i服了you!

源码不能给你,因为是公司产品中的一部分.(虽然是我写的,但版权应该属于公司吧,我怕被告呀.)
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-05-17 15:53
能把关于处理IOCTL_SIIMON_STARTSPY,IOCTL_SIIMON_STOPSPY的代码给我吗、?谢谢,让我明白是怎么回事,分我给我
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2004-05-17 15:59
拦截相关设备的irp就是了.
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-05-17 16:02
兄弟你就给我一段做为参考吧就算是为中国软件事业做贡献吧

[编辑 -  5/17/04 by  zhiyuan19840428]
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-05-17 16:19
能说说驱动程序对象和设备对象之间的区别吗?
zhiyuan19840428
驱动小牛
驱动小牛
  • 注册日期2004-05-11
  • 最后登录2005-06-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-05-17 16:32
是不是说IoCreateService()创建一个驱动对象而AddDevice()创建一个设备对象并使用IoCreateService()创建的设备,其实说白了,也就这个设备使用同一个驱动
上一页
游客

返回顶部