IOCTL_SMARTCARD_IS_PRESENT IOCTL (winsmcrd.h)

Le code de contrôle IOCTL_SMARTCARD_IS_PRESENT détecte si un carte intelligent est actuellement détecté. Si un carte est présent, il retourne immédiatement avec STATUS_SUCCESS. Si aucune carte intelligente n’est détectée, elle s’abonne à l’événement d’arrivée smart carte et reste en attente. La fermeture du handle de fichier désactive 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 :

Code de retour Description
STATUS_PENDING Ce code est retourné si l’opération attend que le carte intelligent s’approche du champ radio.
STATUS_DEVICE_BUSY Ce code est retourné si l’opération est déjà en attente de 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 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 ce IOCTL suspendu.

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

Configuration requise

Condition requise Valeur
En-tête winsmcrd.h

Voir aussi

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

Guide de conception smart carte