IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)
La requête IOCTL_SERIAL_WAIT_ON_MASK est utilisée pour attendre l’occurrence d’un événement d’attente spécifié à l’aide d’une requête IOCTL_SERIAL_SET_WAIT_MASK.
Une requête wait-on-mask est terminée après l’un des événements suivants :
- Un événement d’attente se produit qui a été spécifié par la demande set-wait-mask la plus récente.
- Une demande IOCTL_SERIAL_SET_WAIT_MASK est reçue pendant qu’une demande wait-on-mask est en attente. Le pilote termine la requête wait-on-mask en attente avec l’état de STATUS_SUCCESS et le masque d’attente de sortie est défini sur zéro.
Un client envoie une demande de IOCTL_SERIAL_WAIT_ON_MASK pour attendre l’occurrence d’un événement spécifié dans le masque d’attente fourni par la demande de IOCTL_SERIAL_SET_WAIT_MASK la plus récente. Si un ou plusieurs événements du masque d’attente actuel se produisent avant l’envoi de la requête IOCTL_SERIAL_WAIT_ON_MASK, cette demande est immédiatement terminée avec l’état de STATUS_SUCCESS et une valeur de masque de sortie qui identifie les événements. Si aucun événement dans le masque d’attente ne se produit avant l’envoi de la demande de IOCTL_SERIAL_WAIT_ON_MASK, cette demande est marquée comme étant en attente et attend dans la file d’attente du contrôleur série l’occurrence suivante d’un événement dans le masque d’attente actuel.
Une fois la demande de IOCTL_SERIAL_WAIT_ON_MASK d’un client terminée avec un état de STATUS_SUCCESS et une valeur de masque de sortie différente de zéro, le client peut envoyer une nouvelle demande de IOCTL_SERIAL_WAIT_ON_MASK pour attendre un autre événement dans le masque d’attente actuel. Seul un nouvel événement qui se produit après la fin de la demande de IOCTL_SERIAL_WAIT_ON_MASK précédente entraîne la fin de la nouvelle requête IOCTL_SERIAL_WAIT_ON_MASK avec l’état de STATUS_SUCCESS et une valeur de masque de sortie différente de zéro.
Code principal
Mémoire tampon d’entrée
Aucun.
Longueur de la mémoire tampon d’entrée
Aucun.
Mémoire tampon de sortie
AssociatedIrp.System tampon pointe vers une mémoire tampon ULONG qui contient un masque d’attente d’événement. Le masque d’attente d’événement indique les événements d’attente qui se sont produits. Le masque d’attente d’événement est défini sur zéro ou sur le bit-OR d’un ou plusieurs bits d’indicateur SERIAL_EV_XXX.
Longueur de la mémoire tampon de sortie
Le membre Parameters.DeviceIoControl.OutputBufferLength est défini sur la taille, en octets, d’un ULONG.
Bloc d’état
Le membre Information est défini sur la taille, en octets, d’un ULONG.
Le membre Status est défini sur l’une des valeurs d’état génériques pour les demandes de contrôle d’appareil série. Un état de STATUS_INVALID_PARAMETER indique qu’aucun événement d’attente n’est défini ou qu’une demande wait-on-mask est déjà en attente.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ntddser.h (include Ntddser.h) |