qwerty_sz
驱动牛犊
驱动牛犊
  • 注册日期2009-04-20
  • 最后登录2012-06-28
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望121点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2485回复:0

关于WDK框架中连续读中断端口的问题。

楼主#
更多 发布于:2011-11-30 11:46
在WDK中,对中断端口的读提供了连续读操作的方法,这样驱动可以查询设备是否有数据,我的做法是:
在EvtDevicePrepareHardware中:


 /*配置中断端口连续读操作*/
 WDF_USB_CONTINUOUS_READER_CONFIG_INIT(&interruptConfig,
  InterruptContinousReadComplete,
  devCtx,
  devCtx->MaximumTransferSize);
status = WdfUsbTargetPipeConfigContinuousReader(devCtx->UsbInterruptInPipe,&interruptConfig);
 if(!NT_SUCCESS(status))
 {
  KdPrint((__DRIVER_NAME
   "WdfUsbTargetPipeConfigContinuousReader failed with status 0x%08x\n", status));
 }
 else
 {
  KdPrint((__DRIVER_NAME "WdfUsbTargetPipeConfigContinuousReader OK!\n"));

 devCtx->InterruptBufLen = 0;
  devCtx->IntPipeConfigured = TRUE;
 }

然后再D0Entry中: status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(devCtx->UsbInterruptInPipe));
 if(!NT_SUCCESS(status))
 {
  KdPrint((__DRIVER_NAME
   "WdfIoTargetStart failed with status 0x%08x\n", status));
  return status;
 }

为什么我在调试过程中用USBTRACE工具看不到驱动查询设备的数据发出去?驱动查询设备发出去的究竟是什么样的数据?
新手,谢谢大家指教!!
 
游客

返回顶部