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 回调函数。

在框架调用驱动程序的 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