Partager via


EVT_SERCX_PURGE fonction de rappel (sercx.h)

La fonction de rappel d’événement EvtSerCxPurge est appelée par l’extension SerCx (Serial Framework Extension) pour vider les mémoires tampons matérielles du contrôleur série.

Syntaxe

EVT_SERCX_PURGE EvtSercxPurge;

NTSTATUS EvtSercxPurge(
  [in] WDFDEVICE Device,
  [in] ULONG PurgeMask
)
{...}

Paramètres

[in] Device

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

[in] PurgeMask

Ensemble d’indicateurs qui décrivent les mémoires tampons matérielles qui doivent être purgées. Actuellement, aucun indicateur n’est défini pour les opérations de purge effectuées par le contrôleur série. Pour plus d'informations, consultez la section Notes.

Valeur retournée

La fonction EvtSerCxPurge retourne STATUS_SUCCESS si l’appel réussit. Sinon, il retourne une erreur appropriée status code.

Remarques

Le pilote de contrôleur série implémente cette fonction de rappel. SerCx appelle cette fonction lorsqu’un client (application ou pilote de périphérique) envoie une demande de contrôle IOCTL_SERIAL_PURGE qui nécessite que les mémoires tampons matérielles gérées par le contrôleur série soient purgées.

SerCx effectue les opérations de purge qui sont désignées par les indicateurs répertoriés dans le tableau suivant.

Bit d’indicateur Signification
SERIAL_PURGE_RXABORT Videz toutes les demandes de lecture.
SERIAL_PURGE_RXCLEAR Purgez la mémoire tampon d’entrée, le cas échéant. Toutes les données de réception de cette mémoire tampon sont ignorées.
SERIAL_PURGE_TXABORT Videz toutes les demandes d’écriture.
SERIAL_PURGE_TXCLEAR Purgez la mémoire tampon de sortie, le cas échéant. Toutes les données de transmission de cette mémoire tampon sont ignorées.
 

La fonction EvtSerCxPurge ne recevra jamais de demande de purge contenant les indicateurs de cette table. Les indicateurs SERIAL_PURGE_XXX sont définis dans le fichier d’en-tête Ntddser.h.

Actuellement, aucun indicateur SERIAL_PURGE_XXX n’est défini pour désigner les opérations de purge effectuées par le pilote de contrôleur série, et le pilote de contrôleur série ne doit effectuer aucune opération de purge en réponse à un appel EvtSerCxPurge .

Si la demande de contrôle IOCTL_SERIAL_PURGE nécessite l’annulation des demandes de lecture ou d’écriture en attente, SerCx annule ces demandes avant d’appeler la fonction EvtSerCxPurge .

Pour inscrire une fonction de rappel EvtSerCxPurge , le pilote du contrôleur appelle la méthode SerCxInitialize pendant le rappel EvtDriverDeviceAdd .

Exemples

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

typedef NTSTATUS
  EVT_SERCX_PURGE(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    );

Pour définir une fonction de rappel EvtSerCxPurge nommée MyEvtSerCxPurge, 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_PURGE MyEvtSerCxPurge;

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

NTSTATUS
  MyEvtSerCxPurge(
    __in WDFDEVICE Device,
    __in ULONG PurgeMask
    )
{ ... }

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

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize