sunyou120
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1030回复:5

DS中DeviceIoControl的问题

楼主#
更多 发布于:2003-10-16 19:21
要完成一个简单的读写功能,用DS编程
请问如何在驱动程序中得到DivceIoControl中的LPInBuffer传递给驱动的值?
而刚开始应用程序是否也可以利用输出缓冲区LPOutBuffer传递给驱动程序参数呢?
KIrp有没有相关函数呀?
能否给出个源代码 :)
superrobust
驱动牛犊
驱动牛犊
  • 注册日期2003-01-04
  • 最后登录2007-08-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-16 20:58
可以找本武安河写的WDM设备驱动开发看看拉:)他用DS做工具的
你问的这些有对应的描述。
everything is developing
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-17 09:47
要完成一个简单的读写功能,用DS编程
请问如何在驱动程序中得到DivceIoControl中的LPInBuffer传递给驱动的值?
而刚开始应用程序是否也可以利用输出缓冲区LPOutBuffer传递给驱动程序参数呢?
KIrp有没有相关函数呀?
能否给出个源代码 :)
 


用DS实现你说的这些很容易。利用BUFFERED方式,刚开始输入缓冲区的内容是从应用到驱动。当驱动返回的时候,可以把要返回给应用的内容放在输出缓冲区里。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
sunyou120
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-17 11:04
用DS实现你说的这些很容易。利用BUFFERED方式,刚开始输入缓冲区的内容是从应用到驱动。当驱动返回的时候,可以把要返回给应用的内容放在输出缓冲区里。 [/quote]


大侠所指的输入缓冲区和输出缓冲区是不是都是
KIrp::IoctlBuffer指的区域呀?
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-17 12:18
是的,KIrp::IoctlBuffer获得缓冲区的地址,但是只是对于控制命令定义为METHOD_BUFFERED方式有效
答得好的话,请兄弟们加点分,那是对我的肯定
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-17 14:12
用DS实现你说的这些很容易。利用BUFFERED方式,刚开始输入缓冲区的内容是从应用到驱动。当驱动返回的时候,可以把要返回给应用的内容放在输出缓冲区里。



大侠所指的输入缓冲区和输出缓冲区是不是都是
KIrp::IoctlBuffer指的区域呀? [/quote]

是的!对于缓冲方式,输入和输出缓冲区都是用这个来得到缓冲区的地址。
对于直接方式,输入缓冲区是用这个来得到,输出缓冲区是用MDL结构来构造。看看例子!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
游客

返回顶部