Partager via


structure SCARD_READER_CAPABILITIES (smclib.h)

La structure SCARD_READER_CAPABILITIES contient des informations d’état sur le lecteur de carte à puce.

Syntaxe

typedef struct _SCARD_READER_CAPABILITIES {
  ULONG                    SupportedProtocols;
  ULONG                    Reserved;
  ULONG                    ReaderType;
  ULONG                    MechProperties;
  ULONG                    CurrentState;
  ULONG                    Channel;
  struct {
    ULONG Default;
    ULONG Max;
  } CLKFrequency;
  struct {
    ULONG Default;
    ULONG Max;
  } DataRate;
  ULONG                    MaxIFSD;
  ULONG                    PowerMgmtSupport;
  ULONG                    CardConfiscated;
  struct {
    PULONG List;
    UCHAR  Entries;
  } DataRatesSupported;
  _DataRatesSupported      _DataRatesSupported;
  struct {
    PULONG List;
    UCHAR  Entries;
  } CLKFrequenciesSupported;
  _CLKFrequenciesSupported _CLKFrequenciesSupported;
  UCHAR                    Reserved1[100 - sizeof(ULONG)- sizeof(struct _DataRatesSupported)- sizeof(struct _CLKFrequenciesSupported)];
} SCARD_READER_CAPABILITIES, *PSCARD_READER_CAPABILITIES;

Membres

SupportedProtocols

Doit être défini sur un masque de bits qui reflète les protocoles asynchrones ou synchrones pris en charge par le lecteur de carte et le pilote de lecteur de carte. Ce membre est requis.

Reserved

Réservé à l’utilisation du système.

ReaderType

Ce membre contient le type de lecteur et est requis. Ce membre peut avoir l’une des valeurs du tableau suivant.

Valeur Signification
SCARD_READER_TYPE_SERIAL Lecteur série
SCARD_READER_TYPE_PCMCIA Lecteur PCMCIA
SCARD_READER_TYPE_KEYBOARD Lecteur attaché au clavier
SCARD_READER_TYPE_USB Lecteur USB
SCARD_READER_TYPE_PARALELL Lecteur parallèle
SCARD_READER_TYPE_SCSI Lecteur SCSI
SCARD_READER_TYPE_IDE Lecteur IDE
SCARD_READER_TYPE_TPM Lecteur qui utilise une puce TPM pour le stockage matériel de clé et les opérations de chiffrement
SCARD_READER_TYPE_VENDOR Lecteur qui utilise un bus fournisseur propriétaire

MechProperties

Contient une valeur formée en prenant une or au niveau du bit de toutes les propriétés de lecteur applicables indiquées dans le tableau suivant. Ce membre est facultatif.

Valeur Signification
SCARD_READER_SWALLOWS Le lecteur a un mécanisme d’avalage.
SCARD_READER_EJECTS Le lecteur peut éjecter la carte à puce.
SCARD_READER_CONFISCATES Le lecteur peut avaler la carte à puce.

CurrentState

Ce membre contient l’état de la carte et est requis. Ce membre peut avoir l’une des valeurs répertoriées dans le tableau suivant.

Statut Signification
SCARD_UNKNOWN Le lecteur n’a pas d’informations sur l’état.
SCARD_ABSENT Aucune carte à puce n’est insérée.
SCARD_PRESENT Une carte à puce est insérée.
SCARD_SWALLOWED Une carte à puce est insérée et le lecteur l’a avalé.
SCARD_POWERED La carte à puce est activée, mais le lecteur ne reconnaît pas son mode.
SCARD_NEGOTIABLE Une carte à puce est insérée et attend la négociation de protocole.
SCARD_SPECIFIC Une carte à puce est insérée et un protocole a été sélectionné.
 

L’accès à ce champ doit être séquentielisé à l’aide du verrou de rotation pointé par le membre OsData->SpinLock de SMARTCARD_EXTENSION.

Channel

Contient le numéro de canal logique. Ce membre est facultatif. La signification exacte de ce membre dépend du type de carte à puce, comme indiqué dans le tableau suivant.

Type de carte à puce Signification de la valeur dans le champ de canal
Lecteur série Numéro de port
Lecteur parallèle Numéro de port
Lecteur SCSI SCSI ID
Lecteur de clavier 0
Lecteur USB Numéro d’appareil
 

Pour plus d’informations, consultez la partie 3 de la spécification d’interopérabilité pour les ICCS et les systèmes informatiques personnels.

CLKFrequency

Structure avec les membres suivants :

CLKFrequency.Default

Contient la fréquence d’horloge standard à laquelle le lecteur s’exécute, en kilohertz et encodé au format little-endian. Par exemple, 3,58 MHz est encodé en 3580. Ce membre est requis.

CLKFrequency.Max

Contient la fréquence d’horloge maximale à laquelle le lecteur peut s’exécuter, en kilohertz et encodé au format little-endian. Ce membre est requis.

DataRate

Structure avec les membres suivants :

DataRate.Default

Contient le taux de données standard du lecteur, en unités de bits par seconde et encodé au format little-endian. Ce membre est requis.

DataRate.Max

Contient le taux de données maximal du lecteur, en unités de bits par seconde et encodé au format little-endian. Ce membre est requis.

MaxIFSD

Contient la taille maximale de la mémoire tampon du lecteur. Cette valeur informe la carte à puce au début d’une transmission T=1 du nombre maximal d’octets pouvant être reçus dans un paquet. Ce membre est requis.

PowerMgmtSupport

Indique le type de gestion de l’alimentation pris en charge par la carte. La valeur zéro indique que la carte à puce ne prend pas en charge la gestion de l’alimentation.

CardConfiscated

Si VRAI, indique que la carte à puce a été confisquée.

DataRatesSupported

Structure avec les membres suivants :

DataRatesSupported.List

Contient une liste des taux de données, en bits par seconde, pris en charge par le lecteur. Ce membre est utilisé avec la requête PTS. Le pilote de lecteur définit généralement ce membre sur un pointeur vers un tableau statique de valeurs longues non signées qui contiennent les taux de données pris en charge. Si le lecteur ne prend pas en charge les différents taux de données, laissez ce membre vide. Ce membre est facultatif.

DataRatesSupported.Entries

Contient le nombre d’entrées de liste liée dans DataRatesSupported.List. Ce membre est facultatif.

_DataRatesSupported

Structure avec les membres suivants :

CLKFrequenciesSupported

Structure avec les membres suivants :

CLKFrequenciesSupported.List

Contient une liste de fréquences d’horloge, en kilohertz, prises en charge par le lecteur. Ce membre est utilisé avec la requête PTS. Le pilote définit généralement ce membre sur un pointeur vers un tableau statique de valeurs longues non signées qui contiennent les fréquences d’horloge prises en charge. Si le lecteur ne prend pas en charge différentes fréquences d’horloge, laissez ce membre vide. Ce membre est facultatif.

CLKFrequenciesSupported.Entries

Contient le nombre d’entrées de liste liée de CLKFrquenciesSupported.List. Ce membre est facultatif.

_CLKFrequenciesSupported

Structure avec les membres suivants :

Reserved1[100 - sizeof(ULONG)- sizeof(struct _DataRatesSupported)- sizeof(struct _CLKFrequenciesSupported)]

Réservé à l’utilisation du système.

Remarques

Cette structure doit être conservée par le pilote lecteur de carte à puce.

Exigences

Exigence Valeur
d’en-tête smclib.h (include Smclib.h)