Partager via


IOCTL_SMARTCARD_IS_PRESENT IOCTL (winsmcrd.h)

Le code de contrôle IOCTL_SMARTCARD_IS_PRESENT détecte si une carte à puce est actuellement détectée. Si une carte est présente, elle retourne immédiatement avec STATUS_SUCCESS. Si aucune carte à puce n’est détectée, elle s’abonne à l’événement d’arrivée de la carte à puce et est conservée en attente. La fermeture du handle de fichier annule l’événement.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d’entrée

Aucun.

Mémoire tampon de sortie

Aucun.

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_PENDING Ce code est retourné si l’opération attend que la carte à puce approche dans le champ radio.
STATUS_DEVICE_BUSY Ce code est retourné si l’opération attend déjà l’événement présent.
STATUS_INVALID_DEVICE_STATE Ce code est retourné si l’appareil ne peut pas accepter la demande.
STATUS_INVALID_PARAMETER Ce code est retourné lorsque les mémoires tampons d’entrée ou de sortie ne sont pas valides.
STATUS_DEVICE_POWERED_OFF Ce code est retourné lorsque le contrôle radio de proximité est désactivé.

Remarques

Les actions suivantes sont requises lors de l’utilisation de ce IOCTL :

  • Le pilote doit prendre en charge CancelIo sur cette IOCTL pendée.

  • Il s’agit d’une demande gérée par l’alimentation. Le IOCTL pendé gardera le pilote dans un état d’alimentation D0.
  • Le pilote doit retourner STATUS_SUCCESS uniquement pour le type pris en charge.

Exigences

Exigence Valeur
d’en-tête winsmcrd.h

Voir aussi

guide de conception nfc (Near Field Communication)

guide de conception de carte à puce