flay
驱动牛犊
驱动牛犊
  • 注册日期2002-04-25
  • 最后登录2003-07-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1586回复:2

如何在驱动线程中建立一个读/写的irp,发送到usb总线驱动?

楼主#
更多 发布于:2002-05-16 16:10
请各位指教。

在线程中:

PDEVICE_OBJECT fdo=(PDEVICE_OBJECT)pdx->fdo;
IO_STATUS_BLOCK IoStatus;
KEVENT event;
PVOID buf;
// Initialise IRP completion event
KeInitializeEvent(&event, NotificationEvent, FALSE);

PIRP Irp = IoBuildDeviceIoControlRequest(
  IRP_MJ_DEWRITE,
  fdo,   buf,//IN PVOID InputBuffer OPTIONAL,
  buflen,//IN ULONG InputBufferLength,
    NULL,0,//IN ULONG OutputBufferLength,
  TRUE, &event, &IoStatus);//InternalDeviceIoControl,Event,IoStatusBlock

...
build urb.
callUSBDI(....);

这样可否?

IoBuildDeviceIoControlRequest
中,如果ioctrolcode参数设为 io_mj_read  or io_mj_write ,驱动会自动调用派遣例程中的读写函数吗?

谢谢!!

最新喜欢:

baoyibao99baoyib...
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-16 16:56
建议你看看USBDI的内部IOCTL,比如
IOCTL_INTERNAL_USB_SUBMIT_URB,IOCTL_INTERNAL_USB_RESET_PORT等。而你的IRP_MJ_DEWRITE是什么?
IRP_MJ_READ也并不是USBDI说明的接口。就算能够成功,但是它完成什么功能无从得知。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
flay
驱动牛犊
驱动牛犊
  • 注册日期2002-04-25
  • 最后登录2003-07-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-27 19:47
多谢版主,我已经搞定了。其实就是在内部建一个irp包,然后将urb
付给irp stack的域,calldriver就可以了。

谢谢。
游客

返回顶部