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
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 |