Partager via


EVT_SERCX_FILECLEANUP fonction de rappel (sercx.h)

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

Syntaxe

EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;

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

Paramètres

[in] Device

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

Valeur de retour

None

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 de 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 propre, telles que la répartition de la mémoire.

Si le pilote de 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 qui est 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 fichier libéré. Par conséquent, 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 suspens, 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 une fois l’objet fichier libéré, ce qui se produit uniquement lorsque toutes les demandes d’E/S en suspens 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 propre 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 requise par Static Driver Verifier (SDV) et d’autres outils de vérification, 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Desktop (Expérience utilisateur)
En-tête sercx.h
IRQL Appelé à IRQL <= DISPATCH_LEVEL

Voir aussi

EvtSerCxFileClose

SerCxInitialize