IUsbTargetPipeContinuousReaderCallbackReadersFailed::OnReaderFailure 方法 (wudfusb.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]

驱动程序的 OnReaderFailure 事件回调函数通知驱动程序连续读取器在处理读取请求时报告了错误。

语法

BOOL OnReaderFailure(
  [in] IWDFUsbTargetPipe *pPipe,
  [in] HRESULT           hrStatus
);

参数

[in] pPipe

指向驱动程序已启用连续读取器的 USB 管道 的 IWDFUsbTargetPipe 接口的指针。

[in] hrStatus

USB 管道的 I/O 目标返回的 HRESULT 类型状态值。

返回值

OnReaderFailure 事件回调函数必须返回一个布尔值。 如果返回值为 TRUE,框架将重置 USB 管道,然后重新启动连续读卡器。 如果回调函数返回 FALSE,则框架不会重置设备或重启连续读取器。

注解

若要注册 OnReaderFailure 回调函数,驱动程序必须在调用 IWDFUsbTargetPipe2::ConfigureContinuousReader 时提供指向驱动程序 IUsbTargetPipeContinuousReaderCallbackReadersFailed 接口的指针。

如果驱动程序已为 USB 管道创建了连续读取器,则如果驱动程序的 I/O 目标在完成读取请求时报告错误,框架将调用驱动程序的 OnReaderFailure 回调函数。 (如果 I/O 目标成功完成请求,框架将调用驱动程序的 IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion 回调 function.)

在调用驱动程序的 OnReaderFailure 回调函数之前,框架会尝试取消所有正在进行的读取请求。 当框架调用 OnReaderFailure 回调函数时,没有正在进行的读取请求。 在 OnReaderFailure 回调函数返回之前,框架不会将任何其他读取请求排队。

有关框架如何将 对 OnReaderFailure 回调函数的调用与其他回调函数的调用同步的信息,请参阅 IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion 的“备注”部分。

OnReaderFailure 回调函数不得调用 IWDFIoTargetStateManagement::Stop 来停止连续读取器的 USB 目标。 (事实上,在 OnReaderFailure 回调函数中调用 IWDFIoTargetStateManagement::Stop 会导致死锁。) 此外,回调函数不得调用 IWDFIoTargetStateManagement::Start 来重启连续读取器。 相反,如果回调函数返回 TRUE,框架将重新启动读取器。 有关何时为连续读取器调用 IWDFIoTargetStateManagement::StartIWDFIoTargetStateManagement::Stop 的详细信息,请参阅 在 UMDF 中使用 USB 管道

如果驱动程序不提供 OnReaderFailure 回调函数,并且驱动程序的 I/O 目标报告错误,则框架将重置 USB 管道并重启连续读取器。

有关 OnReaderFailure 回调函数和 USB I/O 目标的详细信息,请参阅 处理 USB I/O 目标

要求

要求
结束支持 在 UMDF 2.0 及更高版本中不可用。
目标平台 桌面
最低 UMDF 版本 1.9
标头 wudfusb.h (包括 Wudfusb.h)

另请参阅

IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion

IUsbTargetPipeContinuousReaderCallbackReadersFailed