Partager via


EVT_SERCX_WAITMASK fonction de rappel (sercx.h)

La fonction de rappel d’événements EvtSerCxWaitmask configure le contrôleur série pour surveiller les événements dans un masque d’attente, qui est une valeur de masque de bits qui spécifie un ensemble d’événements matériels.

Syntaxe

EVT_SERCX_WAITMASK EvtSercxWaitmask;

NTSTATUS EvtSercxWaitmask(
  [in] WDFDEVICE Device
)
{...}

Paramètres

[in] Device

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

Valeur de retour

La fonction EvtSerCxWaitmask 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. L’extension de framework série (SerCx) appelle cette fonction pour notifier le pilote lorsque le masque d’attente change. Pendant cet appel, la fonction EvtSerCxWaitmask appelle la méthode SerCxGetWaitMask pour obtenir le nouveau masque d’attente. Le pilote commence immédiatement à surveiller les événements dans le nouveau masque d’attente et ignore tout ancien masque d’attente qui a peut-être été fourni dans un EvtSerCxWaitmask appel. Si le nouveau masque d’attente est égal à zéro, le pilote ignore simplement l’ancien masque d’attente et cesse de surveiller les événements de masque d’attente.

Lorsque SerCx reçoit une requête IOCTL_SERIAL_SET_WAIT_MASK d’un client, le gestionnaire de requêtes dans SerCx appelle la fonction EvtSerCxWaitmask pour définir le nouveau masque d’attente. Pour plus d’informations sur les types d’événements qui peuvent être spécifiés par un masque d’attente, consultez SERIAL_EV_XXX.

La fonction EvtSerCxWaitmask configure le matériel du contrôleur série pour surveiller les événements dans le nouveau masque d’attente. En règle générale, la fonction active les interruptions pour ces événements. Après avoir configuré le matériel, la fonction doit retourner immédiatement, sans attendre qu’un événement dans le masque d’attente se produise.

Plus tard, lorsqu’un événement dans le masque d’attente provoque une interruption, l’ISR dans le pilote du contrôleur série planifie l’exécution d’une fonction DPC. Cette fonction DPC appelle la méthode SerCxCompleteWait pour notifier SerCx de l’événement.

Initialement, une fois qu’un client ouvre une connexion au port série et avant le premier EvtSerCxWaitmask appel, le masque d’attente est effectivement égal à zéro et le pilote du contrôleur série ne surveille pas les événements SERIAL_EV_XXX.

Pour inscrire une fonction de rappel EvtSerCxWaitmask, 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_WAITMASK(
    __in WDFDEVICE Device
    );

Pour définir une EvtSerCxWaitmask fonction de rappel nommée MyEvtSerCxWaitmask, 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_WAITMASK MyEvtSerCxWaitmask;

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

NTSTATUS
  MyEvtSerCxWaitmask(
    __in WDFDEVICE Device
    )
{ ... }

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_SET_WAIT_MASK

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_EV_XXX

SerCxGetWaitMask

SerCxInitialize