00-USB学习探索.pptVIP

  • 5
  • 0
  • 约1.66万字
  • 约 81页
  • 2017-03-17 发布于湖北
  • 举报
IRP_MJ_READ/WRITE例程 当应用层调用ReadFile/WriteFile时,I/O管理器将读/写请求封装成IRP传递给设备对象1. 对象链:文件对象--设备对象--驱动对象---例程入口 2. 驱动栈 :上层过滤驱动--功能驱动(FDO)--下层过滤驱动--总线驱动 原型 NTSTATUS GRGUSB_IO_RW( PDEVICE_OBJECT DeviceObject, PIRP Irp) 功能 1.检查端点与操作是否匹配 2.调用UsbBuildInterruptOrBulkTransferRequest构造URB请求 3.调用IoSetCompletionRoutine设置完成例程入口点GRGUSB_IO_RW_Completion 4.标记IRP为Pending状态 5.IoCallDriver调用下层驱动处理 6.返回处理状态 注:URB是USB Request Block的缩写,URB是FDO与USB总线驱动(usbd.sys)间接口 GRGUSB_IO_RW_Completion void IoSetCompletionRoutine( PIRP Irp, // I/O请求的Irp PIOC_ROUTINE CompletionRoutine // 完成例程 PVOID Context, //

文档评论(0)

1亿VIP精品文档

相关文档