Freigeben über


EVT_SERCX_PURGE Rückruffunktion (sercx.h)

Die EvtSerCxPurge Ereignisrückruffunktion wird von der seriellen Framework-Erweiterung (SerCx) aufgerufen, um die Hardwarepuffer des seriellen Controllers zu löschen.

Syntax

EVT_SERCX_PURGE EvtSercxPurge;

NTSTATUS EvtSercxPurge(
  [in] WDFDEVICE Device,
  [in] ULONG PurgeMask
)
{...}

Parameter

[in] Device

Ein WDFDEVICE-Handle für das Framework-Geräteobjekt, das den seriellen Controller darstellt.

[in] PurgeMask

Eine Reihe von Flags, die die zu löschenden Hardwarepuffer beschreiben. Derzeit werden keine Flags für Bereinigungsvorgänge definiert, die vom seriellen Controller ausgeführt werden. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Die EvtSerCxPurge Funktion gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls wird ein entsprechender Fehlerstatuscode zurückgegeben.

Bemerkungen

Der serielle Controllertreiber implementiert diese Rückruffunktion. SerCx ruft diese Funktion auf, wenn ein Client (Anwendung oder Peripherietreiber) eine IOCTL_SERIAL_PURGE Steuerelementanforderung sendet, die Hardwarepuffer erfordert, die vom seriellen Controller verwaltet werden müssen.

SerCx führt die Bereinigungsvorgänge aus, die durch die in der folgenden Tabelle aufgeführten Flags festgelegt sind.

Flagbit Bedeutung
SERIAL_PURGE_RXABORT Alle Leseanforderungen löschen.
SERIAL_PURGE_RXCLEAR Löschen Sie den Eingabepuffer, falls vorhanden. Alle Empfangendaten in diesem Puffer werden verworfen.
SERIAL_PURGE_TXABORT Alle Schreibanforderungen löschen.
SERIAL_PURGE_TXCLEAR Löscht den Ausgabepuffer, falls vorhanden. Alle Übertragungsdaten in diesem Puffer werden verworfen.
 

Die EvtSerCxPurge--Funktion erhält nie eine Bereinigungsanforderung, die eines der Flags in dieser Tabelle enthält. Die SERIAL_PURGE_XXX- Flags werden in der Ntddser.h-Headerdatei definiert.

Derzeit werden keine SERIAL_PURGE_XXX- Flags definiert, um Löschvorgänge festzulegen, die vom seriellen Controllertreiber ausgeführt werden, und der serielle Controllertreiber sollte keine Bereinigungsvorgänge als Reaktion auf einen EvtSerCxPurge- Aufruf ausführen.

Wenn für die IOCTL_SERIAL_PURGE-Steuerelementanforderung ausstehende Lese- oder Schreibanforderungen abgebrochen werden müssen, bricht SerCx diese Anforderungen ab, bevor sie die EvtSerCxPurge-Funktion aufruft.

Um eine EvtSerCxPurge Rückruffunktion zu registrieren, ruft der Controllertreiber die SerCxInitialize Methode während der EvtDriverDeviceAdd Rückruf auf.

Beispiele

Der Funktionstyp für diesen Rückruf wird wie folgt in Sercx.h deklariert.

typedef NTSTATUS
  EVT_SERCX_PURGE(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    );

Um eine EvtSerCxPurge- Rückruffunktion zu definieren, die MyEvtSerCxPurgegenannt wird, müssen Sie zunächst eine Funktionsdeklaration angeben, die Static Driver Verifier (SDV) und andere Überprüfungstools erfordern, wie folgt.

EVT_SERCX_PURGE MyEvtSerCxPurge;

Implementieren Sie dann die Rückruffunktion wie folgt.

NTSTATUS
  MyEvtSerCxPurge(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    )
{ ... }

Weitere Informationen zu SDV-Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für KMDF-Treiber.

Anforderungen

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

Siehe auch

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize