Share via


EVT_SERCX2_PURGE_FIFOS fonction de rappel (sercx.h)

La fonction de rappel d’événement EvtSerCx2PurgeFifos est appelée par la version 2 de l’extension d’infrastructure série (SerCx2) pour vider les mémoires tampons FIFO dans le matériel du contrôleur série.

Syntaxe

EVT_SERCX2_PURGE_FIFOS EvtSercx2PurgeFifos;

void EvtSercx2PurgeFifos(
  [in] WDFDEVICE Device,
  [in] BOOLEAN PurgeRxFifo,
  [in] BOOLEAN PurgeTxFifo
)
{...}

Paramètres

[in] Device

Un handle WDFDEVICE pour l’objet d’appareil framework qui représente le contrôleur série. Le pilote de contrôleur série a créé cet objet dans sa fonction de rappel EvtDriverDeviceAdd . Pour plus d’informations, consultez SerCx2InitializeDevice.

[in] PurgeRxFifo

Indique s’il faut vider le FIFO de réception. Si ce paramètre a la valeur TRUE, purgez le FIFO de réception. Si la valeur est FALSE, ne purgez pas le FIFO de réception.

[in] PurgeTxFifo

Indique s’il faut vider le FIFO de transmission. Si ce paramètre a la valeur TRUE, purgez le FIFO de transmission. Si la valeur est FALSE, ne purgez pas le fichier FIFO de transmission.

Valeur de retour

None

Remarques

Votre pilote de contrôleur série doit implémenter cette fonction. Le pilote inscrit la fonction dans l’appel à la méthode SerCx2InitializeDevice qui termine l’initialisation de l’objet d’appareil framework pour le contrôleur série.

SerCx2 appelle la fonction EvtSerCx2PurgeFifos lorsqu’un client (pilote périphérique) envoie une demande de contrôle IOCTL_SERIAL_PURGE qui nécessite le vidage de l’une ou des deux mémoires tampons FIFO dans le matériel du contrôleur série. Si la demande de contrôle IOCTL_SERIAL_PURGE nécessite l’annulation des demandes en lecture ou en écriture (IRP_MJ_READ ou IRP_MJ_WRITE), SerCx2 annule ces demandes avant d’appeler la fonction EvtSerCx2PurgeFifos .

SerCx2 appelle également la fonction EvtSerCx2PurgeFifos lorsqu’un client ouvre une connexion logique au périphérique de contrôleur série et obtient un handle de fichier pour cette connexion. Pour plus d’informations, consultez Framework File Objects.

Exemples

Pour définir une fonction de rappel EvtSerCx2PurgeFifos , vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction de rappel aide l’analyse du code pour les pilotes, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification à la recherche d’erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction de rappel EvtSerCx2PurgeFifos nommée MyPurgeFifos, utilisez le type de fonction EVT_SERCX2_PURGE_FIFOS , comme indiqué dans cet exemple de code :

EVT_SERCX2_PURGE_FIFOS  MyPurgeFifos;

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

_Use_decl_annotations_
VOID
  MyPurgeFifos(
    WDFDEVICE  Device,
    BOOLEAN PurgeRxFifo,
    BOOLEAN PurgeTxFifo
    )
  {...}

Le type de fonction EVT_SERCX2_PURGE_FIFOS est défini dans le fichier d’en-tête Sercx.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction EVT_SERCX2_PURGE_FIFOS dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes KMDF. Pour plus d’informations sur Use_decl_annotations, consultez Annotating Function Behavior.

Configuration requise

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

Voir aussi

IOCTL_SERIAL_PURGE

SerCx2InitializeDevice