EVT_SERCX_FILECLEANUP Rückruffunktion (sercx.h)
Die EvtSerCxFileCleanup Ereignisrückruffunktion 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 für das Framework-Geräteobjekt, das den seriellen Controller darstellt.
Rückgabewert
Nichts
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 Bereinigungsaufgaben konzentrieren, z. B. die Zuordnung von Speicher.
Wenn der serielle Controllertreiber zuvor nur für die Lebensdauer des jetzt geschlossenen Dateiobjekts Arbeitsspeicher zugewiesen hat, sollte der Treiber diesen Speicher entweder in der EvtSerCxFileCleanup oder EvtSerCxFileClose-Funktion aufteilen.
In der Regel sollten Unterbrechungen erst deaktiviert werden, nachdem das Dateiobjekt freigegeben wurde. Daher sollte die funktion EvtSerCxFileClose und nicht die EvtSerCxFileCleanup Funktion die Unterbrechungen 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 er die EvtSerCxFileCleanup Funktion des Treibers aufruft. SerCx ruft die EvtSerCxFileClose Funktion auf, nachdem das Dateiobjekt freigegeben wurde, was nur auftritt, wenn alle ausstehenden E/A-Anforderungen abgeschlossen oder abgebrochen werden.
Die EvtSerCxFileCleanup Funktion ist optional. Wenn ein serieller Controllertreiber diese Funktion nicht implementiert, muss die EvtSerCxFileClose Funktion alle Bereinigungsaufgaben 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 Framework File Objects.
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 MyEvtSerCxFileCleanup
heißt, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die statische Treiberüberprüfung (SDV) und andere Überprüfungstools erforderlich ist, 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
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows 8. |
Zielplattform- | Desktop |
Header- | sercx.h |
IRQL- | Bei IRQL-<= DISPATCH_LEVEL aufgerufen |