EVT_SERCX_FILECLEANUP Rückruffunktion (sercx.h)

Die EvtSerCxFileCleanup-Ereignisrückruffunktion benachrichtigt den Seriellen Controllertreiber darüber, dass ein Client das letzte Handle für das Dateiobjekt geschlossen hat, das das serielle Controllergerät darstellt.

Syntax

EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;

void EvtSercxFilecleanup(
  [in] WDFDEVICE Device
)
{...}

Parameter

[in] Device

Ein WDFDEVICE-Handle für das Frameworkgerätobjekt, das den seriellen Controller darstellt.

Rückgabewert

Keine

Bemerkungen

Diese Funktion kann bestimmte Systemressourcen behandeln, die der Treiber zuvor für die Lebensdauer des Dateiobjekts zugewiesen hat. In Verbindung mit der EvtSerCxFileClose-Funktion sollte die EvtSerCxFileCleanup-Funktion das serielle Controllergerät aus dem Zustand entfernen, in dem es bereit ist, Daten zu empfangen und zu übertragen. Die EvtSerCxFileCleanup-Funktion sollte sich speziell auf sauber-Up-Aufgaben konzentrieren, z. B. die Zuordnung von Arbeitsspeicher.

Wenn der Treiber des seriellen Controllers zuvor nur Arbeitsspeicher für die Lebensdauer des jetzt geschlossenen Dateiobjekts zugewiesen hat, sollte der Treiber diesen Speicher entweder in der Funktion EvtSerCxFileCleanup oder EvtSerCxFileClose zugeordnet haben.

In der Regel sollten Interrupts erst nach der Freigabe des Dateiobjekts deaktiviert werden. Daher sollte die EvtSerCxFileClose-Funktion und nicht die EvtSerCxFileCleanup-Funktion die Interrupts deaktivieren.

SerCx ruft die EvtSerCxFileCleanup-Funktion eines Treibers auf, nachdem das letzte Handle für das Dateiobjekt geschlossen wurde. Aufgrund ausstehender E/A-Anforderungen wurde dieses Objekt möglicherweise noch nicht freigegeben. Nach diesem Aufruf empfängt der Treiber keine neuen Anforderungen für E/A-Vorgänge.

SerCx ruft die EvtSerCxFileClose-Funktion eines Treibers auf, nachdem die EvtSerCxFileCleanup-Funktion des Treibers aufgerufen wurde. SerCx ruft die EvtSerCxFileClose-Funktion auf, nachdem das Dateiobjekt freigegeben wurde. Dies geschieht nur, wenn alle ausstehenden E/A-Anforderungen entweder abgeschlossen oder abgebrochen werden.

Die EvtSerCxFileCleanup-Funktion ist optional. Wenn ein serieller Controllertreiber diese Funktion nicht implementiert, muss die EvtSerCxFileClose-Funktion des Treibers alle sauber-Up-Aufgaben verarbeiten, die nach dem Schließen des letzten Dateihandles erforderlich sind.

Um eine EvtSerCxFileCleanup-Rückruffunktion zu registrieren, muss der Treiber die SerCxInitialize-Methode aufrufen.

Weitere Informationen finden Sie unter Frameworkdateiobjekte.

Beispiele

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

typedef VOID
  EVT_SERCX_FILECLEANUP(
    __in WDFDEVICE Device
    );

Um eine EvtSerCxFileCleanup-Rückruffunktion mit dem Namen MyEvtSerCxFileCleanupzu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die der Static Driver Verifier (SDV) und andere Überprüfungstools erfordern.

EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;

Implementieren Sie dann Ihre Rückruffunktion wie folgt.

VOID
  MyEvtSerCxFileCleanup(
    __in WDFDEVICE Device
    )
{ ... }

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Desktop
Kopfzeile sercx.h
IRQL Aufgerufen unter IRQL <= DISPATCH_LEVEL

Weitere Informationen

EvtSerCxFileClose

SerCxInitialize