Partager via


EVT_SERCX_FILECLEANUP fonction de rappel (sercx.h)

La fonction de rappel d’événement EvtSerCxFileCleanup informe le pilote du contrôleur série qu’un client a fermé le dernier handle sur l’objet de fichier qui représente l’appareil du contrôleur série.

Syntaxe

EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;

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

Paramètres

[in] Device

Handle WDFDEVICE pour l’objet d’appareil framework qui représente le contrôleur série.

Valeur de retour

Aucun

Remarques

Cette fonction peut libérer certaines ressources système que le pilote a précédemment allouées pendant la durée de vie de l’objet fichier. Conjointement avec la fonction EvtSerCxFileClose, la fonction EvtSerCxFileCleanup doit supprimer l’appareil du contrôleur série de l’état dans lequel il est prêt à recevoir et à transmettre des données. La fonction EvtSerCxFileCleanup doit se concentrer spécifiquement sur les tâches de nettoyage, telles que l’allocation de la mémoire.

Si le pilote du contrôleur série a précédemment alloué de la mémoire uniquement pour la durée de vie de l’objet de fichier maintenant fermé, le pilote doit libérer cette mémoire dans la fonction EvtSerCxFileCleanup ou EvtSerCxFileClose.

En règle générale, les interruptions ne doivent être désactivées qu’une fois l’objet de fichier libéré. Ainsi, la fonction EvtSerCxFileClose, et non la fonction EvtSerCxFileCleanup, doit désactiver les interruptions.

SerCx appelle la fonction EvtSerCxFileCleanup d’un pilote après la fermeture du dernier handle de l’objet de fichier. En raison des demandes d’E/S en attente, cet objet peut ne pas encore être libéré. Après cet appel, le pilote ne reçoit aucune nouvelle demande d’opérations d’E/S.

SerCx appelle la fonction evtSerCxFileClose d’un pilote après avoir appelé la fonction EvtSerCxFileCleanup du pilote. SerCx appelle la fonction EvtSerCxFileClose après la publication de l’objet de fichier, ce qui se produit uniquement lorsque toutes les demandes d’E/S en attente sont terminées ou annulées.

La fonction EvtSerCxFileCleanup est facultative. Si un pilote de contrôleur série n’implémente pas cette fonction, la fonction EvtSerCxFileClose du pilote doit gérer toutes les tâches de nettoyage requises après la fermeture du dernier handle de fichier.

Pour inscrire une fonction de rappel EvtSerCxFileCleanup, le pilote doit appeler la méthode SerCxInitialize.

Pour plus d’informations, consultez Framework File Objects.

Exemples

Le type de fonction de ce rappel est déclaré dans Sercx.h, comme suit.

typedef VOID
  EVT_SERCX_FILECLEANUP(
    __in WDFDEVICE Device
    );

Pour définir une fonction de rappel EvtSerCxFileCleanup nommée MyEvtSerCxFileCleanup, vous devez d’abord fournir une déclaration de fonction qui static Driver Verificationr (SDV) et d’autres outils de vérification nécessitent, comme suit.

EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;

Ensuite, implémentez votre fonction de rappel comme suit.

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

Pour plus d’informations sur les exigences SDV pour les déclarations de fonction, consultez déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes KMDF.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8.
plateforme cible Bureau
d’en-tête sercx.h
IRQL Appelé au <IRQL = DISPATCH_LEVEL

Voir aussi

EvtSerCxFileClose

SerCxInitialize