阅读:2596回复:0
关于WDK框架中连续读中断端口的问题。
在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工具看不到驱动查询设备的数据发出去?驱动查询设备发出去的究竟是什么样的数据? 新手,谢谢大家指教!! |
|