IUsbTargetPipeContinuousReaderCallbackReadersFailed::OnReaderFailure-Methode (wudfusb.h)
[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]
Die OnReaderFailure-Ereignisrückruffunktion eines Treibers informiert den Treiber darüber, dass ein fortlaufender Reader beim Verarbeiten einer Leseanforderung einen Fehler gemeldet hat.
Syntax
BOOL OnReaderFailure(
[in] IWDFUsbTargetPipe *pPipe,
[in] HRESULT hrStatus
);
Parameter
[in] pPipe
Ein Zeiger auf die IWDFUsbTargetPipe-Schnittstelle für die USB-Pipe, für die der Treiber einen kontinuierlichen Reader aktiviert hat.
[in] hrStatus
Der HRESULT-typisierte status Wert, den das E/A-Ziel der USB-Pipe zurückgegeben hat.
Rückgabewert
Die OnReaderFailure-Ereignisrückruffunktion muss einen booleschen Wert zurückgeben. Wenn der Rückgabewert TRUE ist, setzt das Framework die USB-Pipe zurück und startet dann den fortlaufenden Reader neu. Wenn die Rückruffunktion FALSE zurückgibt, setzt das Framework das Gerät nicht zurück oder startet den fortlaufenden Reader nicht neu.
Hinweise
Um eine OnReaderFailure-Rückruffunktion zu registrieren, muss Ihr Treiber einen Zeiger auf die IUsbTargetPipeContinuousReaderCallbackReadersFailed-Schnittstelle des Treibers bereitstellen, wenn er IWDFUsbTargetPipe2::ConfigureContinuousReader aufruft.
Wenn ein Treiber einen fortlaufenden Reader für eine USB-Pipe erstellt hat, ruft das Framework die OnReaderFailure-Rückruffunktion des Treibers auf, wenn das E/A-Ziel des Treibers beim Abschließen einer Leseanforderung einen Fehler meldet. (Wenn das E/A-Ziel die Anforderung erfolgreich abgeschlossen hat, ruft das Framework die IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion-Rückruffunktion des Treibers auf.)
Bevor das Framework die OnReaderFailure-Rückruffunktion eines Treibers aufruft, versucht es, alle laufenden Leseanforderungen abzubrechen. Es werden keine Leseanforderungen ausgeführt, wenn das Framework die Rückruffunktion OnReaderFailure aufruft. Das Framework stellt keine zusätzlichen Leseanforderungen in die Warteschlange, bis die Rückruffunktion OnReaderFailure zurückgegeben wird.
Informationen dazu, wie das Framework Aufrufe der OnReaderFailure-Rückruffunktion mit Aufrufen anderer Rückruffunktionen synchronisiert, finden Sie im Abschnitt Hinweise von IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion.
Die OnReaderFailure-Rückruffunktion darf IWDFIoTargetStateManagement::Stop nicht aufrufen, um das USB-Ziel des fortlaufenden Lesegeräts zu beenden. (Tatsächlich verursacht das Aufrufen von IWDFIoTargetStateManagement::Stop in einer OnReaderFailure-Rückruffunktion einen Deadlock.) Darüber hinaus darf die Rückruffunktion IWDFIoTargetStateManagement::Start nicht aufrufen, um den fortlaufenden Reader neu zu starten. Stattdessen startet das Framework den Reader neu, wenn die Rückruffunktion TRUE zurückgibt. Weitere Informationen zum Aufrufen von IWDFIoTargetStateManagement::Start und IWDFIoTargetStateManagement::Stop für einen kontinuierlichen Reader finden Sie unter Arbeiten mit USB-Pipes in UMDF.
Wenn ein Treiber keine OnReaderFailure-Rückruffunktion bereitstellt und das E/A-Ziel des Treibers einen Fehler meldet, setzt das Framework die USB-Pipe zurück und startet den kontinuierlichen Reader neu.
Weitere Informationen zur OnReaderFailure-Rückruffunktion und USB-E/A-Zielen finden Sie unter Behandeln eines USB-E/A-Ziels.
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.9 |
Kopfzeile | wudfusb.h (einschließlich Wudfusb.h) |
Weitere Informationen
IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion