EVT_WDF_USB_READERS_FAILED コールバック関数 (wdfusb.h)
[KMDF と UMDF に適用]
ドライバーの EvtUsbTargetPipeReadersFailed イベント コールバック関数は、読み取り要求の処理中に継続的リーダーがエラーを報告したことをドライバーに通知します。
構文
EVT_WDF_USB_READERS_FAILED EvtWdfUsbReadersFailed;
BOOLEAN EvtWdfUsbReadersFailed(
[in] WDFUSBPIPE Pipe,
[in] NTSTATUS Status,
[in] USBD_STATUS UsbdStatus
)
{...}
パラメーター
[in] Pipe
フレームワーク パイプ オブジェクトへのハンドル。
[in] Status
パイプの I/O ターゲットから返された NTSTATUS 値 。
[in] UsbdStatus
パイプの I/O ターゲットから返された USBD_STATUS型指定の状態値。
戻り値
EvtUsbTargetPipeReadersFailed イベント コールバック関数はブール値を返します。TRUE の場合、フレームワークは USB パイプをリセットし、連続リーダーを再起動します。 この関数が FALSE を返した場合、フレームワークはデバイスをリセットしたり、継続的リーダーを再起動したりしません。
注釈
EvtUsbTargetPipeReadersFailed コールバック関数を登録するには、ドライバーは関数のアドレスをWDF_USB_CONTINUOUS_READER_CONFIG構造体に配置する必要があります。 この関数ポインターを追加するタイミングについては、 WDF_USB_CONTINUOUS_READER_CONFIG_INITの「解説」セクションを参照してください。
ドライバーが USB パイプの連続リーダーを作成した場合、ドライバーの I/O ターゲットが読み取り要求を完了したときにエラーが報告された場合、フレームワークはドライバーの EvtUsbTargetPipeReadersFailed コールバック関数を呼び出します。 (I/O ターゲットが要求を正常に完了した場合、フレームワークはドライバーの EvtUsbTargetPipeReadComplete コールバック関数を呼び出します)。
フレームワークは、ドライバーの EvtUsbTargetPipeReadersFailed コールバック関数を呼び出す前に、進行中のすべての読み取り要求を取り消そうとします。 フレームワークが EvtUsbTargetPipeReadersFailed コールバック関数を呼び出すとき、読み取り要求は進行中ではありません。 フレームワークは、 EvtUsbTargetPipeReadersFailed コールバック関数が返されるまで、追加の読み取り要求をキューに入れません。
フレームワークが EvtUsbTargetPipeReadersFailed コールバック関数の呼び出しを他のコールバック関数の呼び出しと同期する方法については、「 EvtUsbTargetPipeReadComplete」の「解説」セクションを参照してください。
EvtUsbTargetPipeReadersFailed コールバック関数は、連続リーダーの USB ターゲットを停止するために WdfIoTargetStop を呼び出してはなりません。 (実際、EvtUsbTargetPipeReadersFailed コールバック関数で WdfIoTargetStop を呼び出すと、デッドロックが発生します)。また、コールバック関数は、連続リーダーを再起動するために WdfIoTargetStart を呼び出す必要があります。 代わりに、コールバック関数が TRUE を返した場合、フレームワークはリーダーを再起動 します。 連続リーダーの WdfIoTargetStart と WdfIoTargetStop を呼び出すタイミングの詳細については、「 USB パイプの操作」を参照してください。
ドライバーが EvtUsbTargetPipeReadersFailed コールバック関数を提供せず、ドライバーの I/O ターゲットがエラーを報告する場合、フレームワークは USB パイプをリセットし、継続的リーダーを再起動します。
EvtUsbTargetPipeReadersFailed コールバック関数と USB I/O ターゲットの詳細については、「USB I/O ターゲット」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfusb.h (Wdf.h を含む) |
IRQL | PASSIVE_LEVEL |