nk_sun
驱动牛犊
驱动牛犊
  • 注册日期2002-07-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1668回复:9

驱动程序中能进行文件读写操作吗?

楼主#
更多 发布于:2003-12-02 15:30
我想将硬盘上的一个大文件大约2G,通过PCI接口传到板卡上,但由于数据量过大需要一部分一部分的传。比如说,我传512k之后,给板卡一个中断,它先处理这512k,处理过之后,板卡给我生成一个中断,我再传512k给它。

问题是,在驱动程序中,我该怎么每次从文件中读512k数据呢?驱动程序中能执行文件操作吗?该怎么做?
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
沙发#
发布于:2003-12-02 18:08
我想将硬盘上的一个大文件大约2G,通过PCI接口传到板卡上,但由于数据量过大需要一部分一部分的传。比如说,我传512k之后,给板卡一个中断,它先处理这512k,处理过之后,板卡给我生成一个中断,我再传512k给它。

问题是,在驱动程序中,我该怎么每次从文件中读512k数据呢?驱动程序中能执行文件操作吗?该怎么做?


驱动程序中操作文件可以使用:

ZwCreateFile
ZwReadFile
ZwWriteFile
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
Goge
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2004-10-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-02 23:18
没错!
如果用DDK,如楼上所说。
如果用DW,类KFile就可以
nk_sun
驱动牛犊
驱动牛犊
  • 注册日期2002-07-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-03 09:10
感谢两位,我试试先。
还有一个问题,我在中断处理程序中不停的读文件是不是不太合适啊?这样中断处理时间过长了。
那上面我说的那种通过终端与板卡通信的情况,我该怎么做呢?
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
地下室#
发布于:2003-12-03 12:22
感谢两位,我试试先。
还有一个问题,我在中断处理程序中不停的读文件是不是不太合适啊?这样中断处理时间过长了。
那上面我说的那种通过终端与板卡通信的情况,我该怎么做呢?


中断处理时间不应过长,费时的工作一般是放到DPC中处理的。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
Goge
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2004-10-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-03 12:57
由于文件操作只能工作在低于ISR两个级别的优先级上,所以你在中断中是无法进行普通的文件读写操作,在DPC中也不可以,因为DPC在ISR的下以级。
解决方法是使用系统线程操作文件,利用事件或旗语来通知。通知实现到是可以在DPC中进行。^o^
Goge
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2004-10-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-03 13:01
读512K的控制使用KFile方法可以控制,和在C下读二进制相类似。
tomko
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2003-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-04 08:19
我想问 PCI 板卡怎样可以发中断给主板哪一条信号线它要调动?

然后在驱动程序中怎样把这个中断接过来?
Goge
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2004-10-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-04 12:35
这样的问题就不要问了,还是自己看看例子和资料吧。
还有看看基础的东西,有好处
Osmanager
驱动牛犊
驱动牛犊
  • 注册日期2003-04-09
  • 最后登录2010-09-08
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-12 12:22
肯定可以拉,不然大家都不用写驱动了
游客

返回顶部