次の方法で共有


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::Start IWDFIoTargetStateManagement::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