EVT_SERCX_FILECLEANUP Rückruffunktion (sercx.h)

Die Ereignisrückruffunktion EvtSerCxFileCleanup benachrichtigt den seriellen Controllertreiber, 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 zum Framework-Geräteobjekt, 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 Funktion EvtSerCxFileClose 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 Bereinigungsaufgaben konzentrieren, z. B. den Umgang mit Speicher.

Wenn der serielle Controllertreiber zuvor nur für die Lebensdauer des jetzt geschlossenen Dateiobjekts Speicher zugewiesen hat, sollte der Treiber diesen Speicher entweder in der Funktion EvtSerCxFileCleanup oder EvtSerCxFileClose behandeln.

In der Regel sollten Unterbrechungen erst deaktiviert werden, nachdem das Dateiobjekt freigegeben wurde. Daher sollte die EvtSerCxFileClose-Funktion und nicht die EvtSerCxFileCleanup-Funktion die Unterbrechungen deaktivieren.

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

SerCx ruft die EvtSerCxFileClose-Funktion eines Treibers auf, nachdem er die EvtSerCxFileCleanup-Funktion des Treibers aufruft. SerCx ruft die EvtSerCxFileClose-Funktion auf, nachdem das Dateiobjekt freigegeben wurde, was nur auftritt, wenn alle ausstehenden I/O-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 Bereinigungsaufgaben verarbeiten, die nach dem Schließen des letzten Dateihandpunkts erforderlich sind.

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

Weitere Informationen finden Sie unter Framework-Dateiobjekte.

Beispiele

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

typedef VOID
  EVT_SERCX_FILECLEANUP(
    __in WDFDEVICE Device
    );

Um eine EvtSerCxFileCleanup-Rückruffunktion zu definieren, die benannt MyEvtSerCxFileCleanupist, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die statische Treiberüberprüfung (SDV) und andere Überprüfungstools erfordern, wie folgt.

EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;

Implementieren Sie dann die 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

   
Unterstützte Mindestversion (Client) Ab Windows 8 verfügbar.
Zielplattform Power BI Desktop
Header sercx.h
IRQL Aufgerufen bei IRQL <= DISPATCH_LEVEL

Weitere Informationen

EvtSerCxFileClose

SerCxInitialize