Abonnement aux événements de présence
Un abonnement de présence est représenté sous la forme d’un handle ouvert unique dans le pilote. Un événement est lancé vers le client à partir du pilote chaque fois que le fournisseur NFP passe de non-proximité à proximité ou de proximité à non-proximité.
Note Cette interface ne permet pas actuellement de déterminer quel appareil proche a été supprimé ou quels abonnements arrivent de quel appareil proche lorsque deux appareils sont tous deux proches.
Les événements de présence sont implémentés à l’aide du chemin d’abonnement standard. Les messages avec le protocole « DeviceArrived » ou « DeviceDeparted » DOIVENT être interprétés comme des abonnements spéciaux. Le message d’arrivée DOIT être le premier message remis immédiatement avant la remise des messages reçus. Le message de départ DOIT être le dernier message remis une fois qu’aucun autre message n’est possible.
Abonnement
Cela ressemble à un abonnement standard, à l’exception des exigences spécifiques suivantes.
Un périphérique de proximité et son pilote sont impliqués dans le flux de protocole de réception de messages à partir d’un appareil proche.
Mesures à prendre
Le pilote DOIT accepter et signaler les abonnements en double, même s’il est abonné par le même client.
Juste avant la réception du premier message à proximité, le pilote DOIT agir comme si un message virtuel « DeviceArrived » venait d’être reçu.
Lorsque le fournisseur passe à une non-proximité, le pilote DOIT agir comme si un message « DeviceDeparted » virtuel venait d’être reçu.
Le message « DeviceDeparted » NE DOIT PAS être remis au client avant que tous les autres messages aient été gérés par ce client.
La charge utile d’un message DeviceArrived DOIT être un seul DWORD avec les 31 bits élevés définis sur zéro et le bit le moins significatif défini UNIQUEMENT lorsque le premier appareil à devenir proche est capable d’une communication bidirectionnelle soutenue. Pour NFC, cela équivaut à la prise en charge de LLCP.
Si le premier appareil à devenir proche est simplement un appareil de type balise (par exemple, une balise forum NFC), le pilote DOIT effacer le bit le moins significatif dans la charge utile du message DeviceArrived.
La charge utile d’un message DeviceDeparted DOIT être un seul DWORD avec la valeur 0.