阅读:1586回复:2
如何在驱动线程中建立一个读/写的irp,发送到usb总线驱动?
请各位指教。
在线程中: 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 ,驱动会自动调用派遣例程中的读写函数吗? 谢谢!! |
|
最新喜欢:![]() |
沙发#
发布于:2002-05-16 16:56
建议你看看USBDI的内部IOCTL,比如
IOCTL_INTERNAL_USB_SUBMIT_URB,IOCTL_INTERNAL_USB_RESET_PORT等。而你的IRP_MJ_DEWRITE是什么? IRP_MJ_READ也并不是USBDI说明的接口。就算能够成功,但是它完成什么功能无从得知。 |
|
|
板凳#
发布于:2002-05-27 19:47
多谢版主,我已经搞定了。其实就是在内部建一个irp包,然后将urb
付给irp stack的域,calldriver就可以了。 谢谢。 |
|