Freigeben über


EVT_WDF_USB_READERS_FAILED Rückruffunktion (wdfusb.h)

[Gilt für KMDF und UMDF]

Die EvtUsbTargetPipeReadersFailed Ereignisrückruffunktion informiert den Treiber darüber, dass ein fortlaufender Reader beim Verarbeiten einer Leseanforderung einen Fehler gemeldet hat.

Syntax

EVT_WDF_USB_READERS_FAILED EvtWdfUsbReadersFailed;

BOOLEAN EvtWdfUsbReadersFailed(
  [in] WDFUSBPIPE Pipe,
  [in] NTSTATUS Status,
  [in] USBD_STATUS UsbdStatus
)
{...}

Parameter

[in] Pipe

Ein Handle zu einem Frameworkpipelineobjekt.

[in] Status

Der NTSTATUS-Wert, dass das E/A-Ziel der Pipe zurückgegeben wurde.

[in] UsbdStatus

Der USBD_STATUS-typed status value that the pipe's I/O target returned.

Rückgabewert

Die EvtUsbTargetPipeReadersFailed Ereignisrückruffunktion gibt einen booleschen Wert zurück, der, wenn TRUE, bewirkt, dass das Framework die USB-Pipe zurücksetzt und dann den kontinuierlichen Reader neu startet. Wenn diese Funktion FALSE-zurückgibt, setzt das Framework das Gerät nicht zurück oder startet den fortlaufenden Reader neu.

Bemerkungen

Um eine EvtUsbTargetPipeReadersFailed Rückruffunktion zu registrieren, muss der Treiber die Adresse der Funktion in einer WDF_USB_CONTINUOUS_READER_CONFIG Struktur platzieren. Informationen zum Hinzufügen dieses Funktionszeigers finden Sie im Abschnitt "Hinweise" von WDF_USB_CONTINUOUS_READER_CONFIG_INIT.

Wenn ein Treiber einen fortlaufenden Reader für ein USB-Pipe erstellt hat, ruft das Framework die EvtUsbTargetPipeReadersFailed Rückruffunktion auf, wenn der E/A-Zielwert des Treibers beim Abschließen einer Leseanforderung einen Fehler meldet. (Wenn das E/A-Ziel die Anforderung erfolgreich abgeschlossen hat, ruft das Framework die EvtUsbTargetPipeReadComplete Rückruffunktion auf.)

Bevor das Framework die EvtUsbTargetPipeReadersFailed Rückruffunktion aufruft, versucht es, alle laufenden Leseanforderungen abzubrechen. Es werden keine Leseanforderungen ausgeführt, wenn das Framework die EvtUsbTargetPipeReadersFailed Rückruffunktion aufruft. Das Framework stellt keine zusätzlichen Leseanforderungen in die Warteschlange, bis die EvtUsbTargetPipeReadersFailed Rückruffunktion zurückgegeben wird.

Informationen dazu, wie das Framework Aufrufe der EvtUsbTargetPipeReadersFailed Rückruffunktion mit Aufrufen anderer Rückruffunktionen synchronisiert, finden Sie im Abschnitt "Hinweise" von EvtUsbTargetPipeReadComplete.

Die EvtUsbTargetPipeReadersFailed Rückruffunktion darf nicht WdfIoTargetStop- aufrufen, um das USB-Ziel des kontinuierlichen Readers zu beenden. (Tatsächlich führt das Aufrufen WdfIoTargetStop- in einem EvtUsbTargetPipeReadersFailed Rückruffunktion zu einem Deadlock.) Darüber hinaus darf die Rückruffunktion nicht WdfIoTargetStart- aufrufen, um den fortlaufenden Reader neu zu starten. Stattdessen startet das Framework den Reader neu, wenn die Rückruffunktion TRUEzurückgibt. Weitere Informationen zum Aufrufen WdfIoTargetStart und WdfIoTargetStop- für einen kontinuierlichen Reader finden Sie unter Arbeiten mit USB Pipes.

Wenn ein Treiber keine EvtUsbTargetPipeReadersFailed Rückruffunktion bereitstellt und der E/A-Zielwert des Treibers einen Fehler meldet, setzt das Framework die USB-Pipe zurück und startet den fortlaufenden Reader neu.

Weitere Informationen zur EvtUsbTargetPipeReadersFailed Rückruffunktion und USB-E/A-Zielen finden Sie unter USB-E/A-Ziele.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfusb.h (include Wdf.h)
IRQL- PASSIVE_LEVEL

Siehe auch

EvtUsbTargetPipeReadComplete

WDF_USB_CONTINUOUS_READER_CONFIG