版块
论坛
喜欢
话题
应用
搜索
登录
注册
Always!978的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=24526
DeviceIoControl的简单问题
DeviceIoControl在驱动的响应函数中,I.Information()是此次消息响应的返回值,我现在弄不清他是控制此次返回的数据的长度,还是说就是一个标志,提供给上层应用程序来声明此次返回数据的多少呢?
回复
(
11
)
2003-08-01 13:58
来自版块 -
USB驱动开发
◆
◆
表情
告诉我的粉丝
提 交
Always!978
:
原来如此,非常感谢
(2003-08-08 11:06)
回复
swf2003
:
我又有点蒙了 :o 我其实想问,这个I.Information()是控制我返回数据长度的吗?就是说我本来向缓冲区中添了40个char型数据,但是我I.Information() = 10,那么它到底是返回10个char还是40个char呢? 不好意思,懒得去试,所...
(2003-08-01 16:40)
回复
jinghuiren
:
这个I.Information是需要你来填充的,当每一次读或写数据完成后,驱动需要向应用程序返回,返回之前需要填充I.IoStatus.Information以及I.IoStatus.Status,前一个是你这次读写的数据量,如你前面所说就是10不是40,后一个是本次的状态
(2003-08-01 16:40)
回复
Always!978
:
我又有点蒙了 :o 我其实想问,这个I.Information()是控制我返回数据长度的吗?就是说我本来向缓冲区中添了40个char型数据,但是我I.Information() = 10,那么它到底是返回10个char还是40个char呢? 不好意思,懒得去试,所...
(2003-08-01 16:31)
回复
jinghuiren
:
呵呵,看来我这个半道出家做驱动的还有很多东西要学呀 :P 我说起来也做驱动不短时间了,可是连一本写驱动的书都没有认认真真的读完过!
(2003-08-01 16:05)
回复
swf2003
:
确实是返回的长度 问一下楼上的,这个值应该是被驱动拷贝到了deviceiocontrol()函数的倒数第二个参数nBytes里吧? 不是,给用户态返回的值应该是 I/O 管理器拷贝的!
(2003-08-01 15:48)
回复
jinghuiren
:
确实是返回的长度 问一下楼上的,这个值应该是被驱动拷贝到了deviceiocontrol()函数的倒数第二个参数nBytes里吧?
(2003-08-01 14:25)
回复
swf2003
:
typedef struct _IO_STATUS_BLOCK { NTSTATUS Status; ULONG Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; DeviceIoControl 处理的返...
(2003-08-01 14:16)
回复
swf2003
:
它的值是此次返回的数据的长度!
(2003-08-01 14:13)
回复
Always!978
:
哦,那和我想的一样了。
(2003-08-01 14:07)
回复
1
2
下一页 »
Always!978
加关注
写私信
0
关注
0
粉丝
126
帖子
返回顶部