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 |