IUsbTargetPipeContinuousReaderCallbackReadersFailed::OnReaderFailure 方法 (wudfusb.h)

[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,且較新版本的 #D0EC2C1B718EB4C47A0C9E4ECCED74A13 上,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