IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)
Le code de contrôle IOCTL_NFCSE_GET_NEXT_EVENT retourne l’événement suivant disponible dans la mémoire tampon, ou s’il n’y a plus d’événements mis en mémoire tampon reste en attente jusqu’à ce qu’un événement d’élément sécurisé soit disponible. Les détails de l’événement doivent ensuite être retournés à l’appelant.
Code principal
Mémoire tampon d’entrée
Aucun
Longueur de la mémoire tampon d’entrée
Aucun
Mémoire tampon de sortie
Une DWORD indiquant la taille de la structure SECURE_ELEMENT_EVENT_INFO plus sa charge utile, immédiatement suivie de la structure SECURE_ELEMENT_EVENT_INFO elle-même.
Bloc d’état
Irp->IoStatus.Status est défini sur STATUS_SUCCESS si la demande réussit. Les codes d’erreur possibles sont les suivants :
Retour du code | Description |
---|---|
STATUS_INVALID_DEVICE_STATE | Ce code est retourné lorsque cette IOCTL est appelée sur un handle d’appareil qui a un nom de fichier autre que SEEvents, ou lorsqu’il existe déjà une autre demande en attente qui n’est pas encore terminée. |
STATUS_INVALID_PARAMETER | Ce code est retourné lorsque la mémoire tampon de sortie n’est pas zéro, ou lorsque le GUID de l’élément sécurisé ne correspond à aucun des ID énumérés. |
Remarques
Voici les exigences auxquelles le pilote doit adhérer.
- Ce IOCTL doit être appelé sur un handle qui a un nom de fichier relatif SEEvents ; sinon, le pilote retourne STATUS_INVALID_DEVICE_STATE
- Ce pilote doit prendre en charge CancelIO pour ce IOCTL en attente.
- Ce pilote doit conserver une file d’attente reçue des événements d’élément sécurisé reçus qui correspondent au type d’abonnement.
-
Les conditions suivantes doivent être remplies lorsque ce IOCTL est reçu dans le pilote :
- Si la file d’attente reçue est vide, le pilote doit mettre en attente le IOCTL pour la fin ultérieure.
- Si la file d’attente reçue n’est pas vide, le pilote doit dé-mettre en file d’attente un événement, copier la mémoire tampon de message dans la mémoire tampon de sortie du IOCTL et terminer la durée de vie du CIO avec STATUS_SUCCESS immédiatement.
- Si le pilote termine ce IOCTL avec STATUS_SUCCESS, le premier DWORD [4 octets] de la mémoire tampon de sortie doit contenir la taille de la structure SECURE_ELEMENT_EVENT_INFO plus sa charge utile.
- Si les informations d’événement d’élément sécurisé reçues sont trop volumineuses pour être copiées dans la mémoire tampon de ce IOCTL, le pilote doit copier la taille de mémoire tampon requise dans les 4 premiers octets de la mémoire tampon de sortie, définir le champ d’informations du IOCTL sur sizeof(DWORD) et terminer la durée de vie du CIO avec STATUS_BUFFER_OVERFLOW. L’événement doit ensuite être laissé dans la file d’attente reçue.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | nfcsedev.h |