Freigeben über


EVT_SERCX2_PIO_TRANSMIT_CANCEL_DRAIN_FIFO Rückruffunktion (sercx.h)

Die EvtSerCx2PioTransmitCancelDrainFifo Ereignisrückruffunktion wird von Version 2 der seriellen Framework-Erweiterung (SerCx2) aufgerufen, um eine vorherige Anforderung zum Entleeren des Übertragungs-FIFO in der seriellen Controllerhardware abzubrechen.

Syntax

EVT_SERCX2_PIO_TRANSMIT_CANCEL_DRAIN_FIFO EvtSercx2PioTransmitCancelDrainFifo;

BOOLEAN EvtSercx2PioTransmitCancelDrainFifo(
  [in] SERCX2PIOTRANSMIT PioTransmit
)
{...}

Parameter

[in] PioTransmit

Ein SERCX2PIOTRANSMIT Handle für ein PIO-Übertragungsobjekt. Der serielle Controllertreiber hat zuvor den SerCx2PioTransmitCreate Methode aufgerufen, um dieses Objekt zu erstellen.

Rückgabewert

Die EvtSerCx2PioTransmitCancelDrainFifo--Funktion gibt TRUE zurück, wenn sie die ausstehende Entwässerungsanforderung erfolgreich abbricht, und der serielle Controllertreiber kann garantieren, dass der SerCx2PioTransmitdrainFifoComplete Methode nicht aufgerufen wird, um SerCx2 zu benachrichtigen, dass der FIFO entwässert wird. Andernfalls gibt diese Funktion FALSE- zurück, um anzugeben, dass der Treiber bereits aufgerufen wurde oder SerCx2PioTransmitDrainFifoCompleteaufgerufen wird.

Bemerkungen

Ihr serieller Controllertreiber kann diese Funktion als Option implementieren. Falls implementiert, registriert der Treiber die Funktion im SerCx2PioTransmitCreate Aufruf, der das PIO-Übertragungsobjekt erstellt.

Ihr Treiber sollte eine EvtSerCx2PioTransmitCancelDrainFifo-Funktion implementieren, wenn der serielle Controller über einen Hardware-FIFO (oder einen ähnlichen Puffermechanismus) zum Speichern von Daten verfügt. Wenn Ihr Treiber diese Funktion implementiert, muss er auch die EvtSerCx2PioTransmitDrainFifo und EvtSerCx2PioTransmitPurgeFifo Ereignisrückruffunktionen implementieren.

SerCx2 ruft die EvtSerCx2PioTransmitDrainFifo Ereignisrückruffunktion auf, um den seriellen Controllertreiber aufzufordern, fiFO zu entladen, und wartet dann, bis der serielle Controllertreiber SerCx2PioTransmitDrainFifoCompleteaufruft. Ein Abflussvorgang kann eine unbestimmte Zeit in Anspruch nehmen. Wenn die Schreibanforderung ausfällt oder abgebrochen wird, während der Abflussvorgang ausgeführt wird, ruft SerCx2 die EvtSerCx2PioTransmitCancelDrainFifo Funktion auf, um den ausstehenden Abflussvorgang abzubrechen, bevor er beendet wird.

Weitere Informationen finden Sie unter SerCx2 PIO-Transmit Transactions.

Beispiele

Um eine EvtSerCx2PioTransmitCancelDrainFifo Rückruffunktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der rückruffunktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Rückruffunktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine EvtSerCx2PioTransmitCancelDrainFifo Rückruffunktion zu definieren, die MyPioTransmitCancelDrainFifoheißt, verwenden Sie den EVT_SERCX2_PIO_TRANSMIT_CANCEL_DRAIN_FIFO Funktionstyp, wie in diesem Codebeispiel gezeigt:

EVT_SERCX2_PIO_TRANSMIT_CANCEL_DRAIN_FIFO  MyPioTransmitCancelDrainFifo;

Implementieren Sie dann die Rückruffunktion wie folgt:

_Use_decl_annotations_
BOOLEAN
  MyPioTransmitCancelDrainFifo(
    SERCX2PIOTRANSMIT  PioTransmit
    )
  {...}

Der EVT_SERCX2_PIO_TRANSMIT_CANCEL_DRAIN_FIFO Funktionstyp wird in der Headerdatei Sercx.h definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp EVT_SERCX2_PIO_TRANSMIT_CANCEL_DRAIN_FIFO in der Headerdatei angewendet werden, verwendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für KMDF-Treiber. Weitere Informationen zu Use_decl_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.1.
Zielplattform- Desktop
Header- sercx.h
IRQL- Wird bei IRQL <= DISPATCH_LEVEL aufgerufen.

Siehe auch

EvtSerCx2PioTransmitDrainFifo

EvtSerCx2PioTransmitPurgeFifo

IOCTL_SERIAL_PURGE

IRP_MJ_WRITE

SERCX2PIOTRANSMIT

SerCx2PioTransmitCreate

SerCx2PioTransmitDrainFifoComplete