hiker
驱动牛犊
驱动牛犊
  • 注册日期2001-07-19
  • 最后登录2003-01-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1343回复:1

如何将驱动程序中的参数传回应用层?

楼主#
更多 发布于:2001-09-06 17:18
我用kerneldriver开发驱动,使用的METHOD_NEITHER方式。
我定义一个结构来传递所有的参数。
typedef struct
{
 long speed;
 short int channel;
}vib_get_speed;

在dispatchdevicecontrol(..)中:
case xxx_ioctrol_xxx:
{
...
 vib_get_speed getspeed;
...
getspeed.speed=speed;
getspeed.channel=channel;
(vib_get_speed *)Irp.UserBuffer()=getspeed;//这样好像不行,
是不是不能在他们之间传递地址呀
能给我指条明路吗?鞠躬了!

最新喜欢:

changbanpochangb...
在驱动开发的道路上艰苦的跋涉。
fhw
fhw
驱动牛犊
驱动牛犊
  • 注册日期2001-06-19
  • 最后登录2006-12-02
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-11 12:50
[QUOTE]原本由 hiker 发表
[B]我用kerneldriver开发驱动,使用的METHOD_NEITHER方式。
我定义一个结构来传递所有的参数。
typedef struct
{
 long speed;
 short int channel;
}vib_get_speed;

在dispatchdevicecontrol(..)中:
case xxx_ioctrol_xxx:
{
...
 vib_get_speed getspeed;
...
getspeed.speed=speed;
getspeed.channel=channel;
(vib_get_speed *)Irp.UserBuffer()=getspeed;//这样好像不行,
是不是不能在他们之间传递地址呀
能给我指条明路吗?鞠躬了!
 [/B][/QUOTE]
可以用下面的方法传递
case xxx_ioctrol_xxx:
{
...
 vib_get_speed* getspeed=(vib_get_speed*)Irp.UserBuffer();
...
getspeed->speed=speed;
getspeed->channel=channel;
游客

返回顶部