EVT_SERCX2_PURGE_FIFOS Rückruffunktion (sercx.h)
Die EvtSerCx2PurgeFifos Ereignisrückruffunktion wird von Version 2 der seriellen Framework-Erweiterung (SerCx2) aufgerufen, um die FIFO-Puffer in der seriellen Controllerhardware zu löschen.
Syntax
EVT_SERCX2_PURGE_FIFOS EvtSercx2PurgeFifos;
void EvtSercx2PurgeFifos(
[in] WDFDEVICE Device,
[in] BOOLEAN PurgeRxFifo,
[in] BOOLEAN PurgeTxFifo
)
{...}
Parameter
[in] Device
Ein WDFDEVICE-Handle für das Framework-Geräteobjekt, das den seriellen Controller darstellt. Der serielle Controllertreiber hat dieses Objekt in seiner EvtDriverDeviceAdd Rückruffunktion erstellt. Weitere Informationen finden Sie unter SerCx2InitializeDevice.
[in] PurgeRxFifo
Gibt an, ob der Empfangs-FIFO gelöscht werden soll. Wenn dieser Parameter auf TRUEfestgelegt ist, löschen Sie das FIFO-Empfangen. Wenn FALSE-, löschen Sie den Empfangen-FIFO nicht.
[in] PurgeTxFifo
Gibt an, ob die FiFO-Übertragung gelöscht werden soll. Wenn dieser Parameter auf TRUEfestgelegt ist, bereinigen Sie das FIFO.if this parameter is set to TRUE, purge the transmission FIFO. Wenn FALSE-, löschen Sie die FIFO-Übertragung nicht.
Rückgabewert
Nichts
Bemerkungen
Der serielle Controllertreiber muss diese Funktion implementieren. Der Treiber registriert die Funktion im Aufruf der SerCx2InitializeDevice Methode, die die Initialisierung des Framework-Geräteobjekts für den seriellen Controller beendet.
SerCx2 ruft die EvtSerCx2PurgeFifos--Funktion auf, wenn ein Client (Peripherietreiber) eine IOCTL_SERIAL_PURGE-Steuerelementanforderung sendet, die eine oder beide FIFO-Puffer in der seriellen Controllerhardware benötigt, um gelöscht zu werden. Wenn für die IOCTL_SERIAL_PURGE-Steuerelementanforderung ausstehende Lese- oder Schreibzugriffsanforderungen (IRP_MJ_READ oder IRP_MJ_WRITE) erforderlich sind, bricht SerCx2 diese Anforderungen ab, bevor sie die EvtSerCx2PurgeFifos--Funktion aufruft.
SerCx2 ruft auch die funktion EvtSerCx2PurgeFifos auf, wenn ein Client eine logische Verbindung mit dem seriellen Controllergerät öffnet und ein Dateihandle für diese Verbindung abruft. Weitere Informationen finden Sie unter Framework File Objects.
Beispiele
Um eine EvtSerCx2PurgeFifos 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 EvtSerCx2PurgeFifos Rückruffunktion zu definieren, die MyPurgeFifos
benannt ist, verwenden Sie den EVT_SERCX2_PURGE_FIFOS Funktionstyp, wie in diesem Codebeispiel gezeigt:
EVT_SERCX2_PURGE_FIFOS MyPurgeFifos;
Implementieren Sie dann die Rückruffunktion wie folgt:
_Use_decl_annotations_
VOID
MyPurgeFifos(
WDFDEVICE Device,
BOOLEAN PurgeRxFifo,
BOOLEAN PurgeTxFifo
)
{...}
Der EVT_SERCX2_PURGE_FIFOS 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_PURGE_FIFOS 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 PASSIVE_LEVEL aufgerufen. |