IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)

La requête IOCTL_SMARTCARD_SET_PROTOCOL définit le protocole que le pilote utilisera pour communiquer avec le carte intelligent après la détection (insertion) du carte.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

  • Irp->AssociatedIrp.SystemBuffer Contient un masque de protocoles acceptables pour les transmissions suivantes. Le masque peut être au niveau du bit OU des valeurs suivantes :

    • SCARD_PROTOCOL_RAW
    • SCARD_PROTOCOL_T0
    • SCARD_PROTOCOL_T1
    • SCARD_PROTOCOL_DEFAULT
    • SCARD_PROTOCOL_OPTIMAL

    Les deux dernières valeurs sont des définitions de bits supplémentaires qui indiquent que le pilote doit effectuer explicitement la sélection du type de protocole (PTS) avec les meilleurs paramètres de communication possibles (SCARD_PROTOCOL_OPTIMAL) ou utiliser le protocole implicite du carte avec des paramètres standard (SCARD_PROTOCOL_DEFAULT). Si le carte ne prend en charge qu’un seul protocole avec un ensemble de paramètres de communication, les bits sont ignorés.

  • Parameters.DeviceIoControl.InputBufferLength Doit être défini sur sizeof(ULONG). Le pilote détermine le protocole hors du masque à utiliser avec le carte inséré.

Mémoire tampon de sortie

  • Irp->AssociatedIrp.SystemBuffer Le pilote stocke ici le protocole sélectionné (par exemple, SCARD_PROTOCOL_T1). Un seul bit en dehors du masque peut être défini.

Longueur de la mémoire tampon de sortie

  • Parameters.DeviceIoControl.OutputBufferLength Doit être sizeof(ULONG).

Bloc d’état

Irp->IoStatus.Information doit être défini sur sizeof(ULONG).

Irp->IoStatus.Status est défini sur l’une des valeurs suivantes.

Valeur Signification
STATUS_SUCCESS Un protocole a été sélectionné avec succès.
STATUS_NO_MEDIA Aucune carte intelligente n’est détectée dans le lecteur.
STATUS_IO_TIMEOUT L'opération a expiré.
STATUS_NOT_SUPPORTED Le carte intelligent ne prend en charge aucun des protocoles demandés.
STATUS_INVALID_DEVICE_REQUEST Le masque ne contient aucun protocole connu.

Pour plus d’informations, consultez Valeurs NTSTATUS.

Configuration requise

Condition requise Valeur
En-tête winsmcrd.h

Voir aussi

Guide de conception nfc (Near Field Communication)

Guide de conception smart carte