阅读:1355回复:5
各位老师,拜托了,我真的是很着急啊。。。。。
我现在用DDK开发端口读写,但我发现一个IoctlCode对应的只是一种操作,如读或写。如果我想对某个(或若干)端口多次读写的话,比如说几万次,那得在应用层反反复复读,无疑这样会使得程序在用户态--核心态反复进入,这样效率非常低。那怎样才能在驱动层去实现比如说:OperatePort(nPort,nbuf[]);可以让我只进一次驱动层,
从nbuf中挨个读出数写到端口里?进一步说,就是一次用户到内核态的转换但可访问多个端口,或对一个端口进行读写等多次操作呢? 各位老师,谁要回答我那真是对我大恩啊。 |
|
|
沙发#
发布于:2002-04-16 17:56
faint!
大恩竟然没有分可拿? 当然读一次就行了。 在inbuffer里把必要的参数,比如读哪个端口,读几次等传进去,然后driver里稀里哗啦一顿读,读完把数据返回在outbuffer里。 |
|
|
板凳#
发布于:2002-04-16 17:57
楼上的兄弟真是幽默
不过说的一点也没有错 |
|
|
地板#
发布于:2002-04-16 17:59
楼上的兄弟真是幽默 兄弟更直白,签名里直接要分。 |
|
|
地下室#
发布于:2002-04-16 18:19
我发现一个IoctlCode对应的只是一种操作,如读或写。如果我想对某个(或若干)端口多次读写的话,比如说几万次,那得在应用层反反复复读,无疑这样会使得程序在用户态--核心态反复进入,这样效率非常低。。。。。。 想不通你为什么要这样理解Ioctl。 ioctl是复制操作,你要反复使用,当然会效率很低,都不用说几万次,, 你可以定义好你的结构,inbuf,outbuf,合理使用,一次就可以完成你想要的读、写。 |
|
|
5楼#
发布于:2002-04-18 15:59
引用: ========================== 楼上的兄弟真是幽默 不过说的一点也没有错 =========。。。。。。。。。。 |
|