Partager via


IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)

Un client qui souhaite recevoir des notifications indiquant qu’un message a été transmis envoie la demande IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE au pilote de proximité.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

None

Mémoire tampon de sortie

None

Bloc d’état

Irp-IoStatus.Status> a la valeur STATUS_SUCCESS si la demande réussit.

Sinon, indiquez la condition d’erreur appropriée en tant que code NTSTATUS.

Pour plus d’informations, consultez Valeurs NTSTATUS.

Remarques

  • Une application cliente envoie ce IOCTL dans une boucle de contrôle au handle de publication. Deux transmissions distinctes du même message entraîneraient le déclenchement de deux événements.
  • Le client doit envoyer un autre IOCTL chaque fois que le délai suspendu est terminé. Le conducteur DOIT utiliser les verrous appropriés pour garantir que le nombre de réussites de ce IOCTL équivaut au nombre de fois où la publication a été transmise.
  • Les actions suivantes sont requises lors de l’utilisation de ce IOCTL :
    • Si ce IOCTL est reçu sur un handle qui n’a pas réussi auparavant une IOCTL_NFP_SET_PAYLOAD, le pilote DOIT le remplir avec STATUS_INVALID_DEVICE_STATE.
    • Le pilote doit conserver l’équivalent d’un compteur « CompleteEventImmediately » (ULONG ou supérieur) dans le handle de fichier de publication.
    • Lorsque ce IOCTL est reçu dans le pilote :
      • Si le compteur est égal à zéro, le pilote DOIT mettre fin à l’instruction IOCTL pour une exécution ultérieure.
      • Si le compteur est supérieur à zéro, le conducteur DOIT décrémenter le compteur d’un et compléter le IOCTL avec STATUS_SUCCESS immédiatement.
    • Si la publication est transmise et qu’aucun IOCTL n’est actuellement suspendu, le pilote DOIT incrémenter le compteur « CompleteEventImmediately » d’un.
    • Si la publication est transmise alors qu’un IOCTL suspendu est disponible, le pilote DOIT terminer l’IRP suspendu avec STATUS_SUCCESS et NE PAS incrémenter le compteur « CompleteEventImmediately ».
    • Si le IOCTL contient une mémoire tampon d’entrée ou de sortie, le pilote DOIT remplir le IOCTL avec STATUS_INVALID_PARAMETER.
    • Si ce IOCTL est reçu alors qu’un autre est actuellement suspendu dans le handle de publication, le second (ou une version ultérieure) DOIT être terminé avec STATUS_INVALID_DEVICE_STATE.
    • Le pilote DOIT prendre en charge CancelIo du IOCTL suspendu.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
En-tête nfpdev.h

Voir aussi

Guide de conception globale de la communication en champ proche (NFC)

Guide de conception de proximité en champ proche (Appuyez et faites, modèle de fournisseur NFP, exigences du pilote)