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 |