Partager via


EVT_SERCX_PURGE fonction de rappel (sercx.h)

La fonction de rappel d’événement EvtSerCxPurge est appelée par l’extension de framework série (SerCx) 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

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 à vider. Actuellement, aucun indicateur n’est défini pour les opérations de vidage effectuées par le contrôleur série. Pour plus d’informations, consultez Remarques.

Valeur de retour

La fonction EvtSerCxPurge retourne STATUS_SUCCESS si l’appel réussit. Sinon, elle retourne un code d’état d’erreur approprié.

Remarques

Le pilote du contrôleur série implémente cette fonction de rappel. SerCx appelle cette fonction lorsqu’un client (application ou pilote 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 vidées.

SerCx effectue les opérations de vidage 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 Videz 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 Videz 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 vidage qui contient l’un des 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 vidage effectuées par le pilote du contrôleur série, et le pilote du contrôleur série ne doit effectuer aucune opération de vidage 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 requêtes 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 qui static Driver Verificationr (SDV) et d’autres outils de vérification nécessitent, 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.

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

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize