Compartir a través de


estructura SCARD_READER_CAPABILITIES (smclib.h)

La estructura de SCARD_READER_CAPABILITIES contiene información de estado sobre el lector de tarjetas inteligentes.

Sintaxis

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;

Miembros

SupportedProtocols

Debe establecerse en una máscara de bits que refleje los protocolos asincrónicos o sincrónicos que admiten el controlador lector de tarjetas y lector de tarjetas. Este miembro es obligatorio.

Reserved

Reservado para uso del sistema.

ReaderType

Este miembro contiene el tipo de lector y es necesario. Este miembro puede tener uno de los valores de la tabla siguiente.

Valor Significado
SCARD_READER_TYPE_SERIAL Lector serie
SCARD_READER_TYPE_PCMCIA Lector de PCMCIA
SCARD_READER_TYPE_KEYBOARD Lector conectado con teclado
SCARD_READER_TYPE_USB Lector USB
SCARD_READER_TYPE_PARALELL Lector paralelo
SCARD_READER_TYPE_SCSI Lector SCSI
SCARD_READER_TYPE_IDE Lector del IDE
SCARD_READER_TYPE_TPM Lector que usa un chip de TPM para el almacenamiento de material clave y las operaciones criptográficas
SCARD_READER_TYPE_VENDOR Lector que usa un bus de proveedor propietario

MechProperties

Contiene un valor formado tomando un OR bit a bit de todas las propiedades de lector aplicables que se muestran en la tabla siguiente. Este miembro es opcional.

Valor Significado
SCARD_READER_SWALLOWS El lector tiene un mecanismo de ingestión.
SCARD_READER_EJECTS El lector puede expulsar la tarjeta inteligente.
SCARD_READER_CONFISCATES El lector puede tragar la tarjeta inteligente.

CurrentState

Este miembro contiene el estado de la tarjeta y es obligatorio. Este miembro puede tener uno de los valores enumerados en la tabla siguiente.

Status Significado
SCARD_UNKNOWN El lector no tiene información sobre el estado.
SCARD_ABSENT No se inserta ninguna tarjeta inteligente.
SCARD_PRESENT Se inserta una tarjeta inteligente.
SCARD_SWALLOWED Se inserta una tarjeta inteligente y el lector lo ha ingerido.
SCARD_POWERED La tarjeta inteligente está activada, pero el lector no reconoce su modo.
SCARD_NEGOTIABLE Se inserta una tarjeta inteligente y espera la negociación del protocolo.
SCARD_SPECIFIC Se inserta una tarjeta inteligente y se ha seleccionado un protocolo.
 

El acceso a este campo se debe secuencializar mediante el bloqueo de número al que apunta el miembro OsData-SpinLock> de SMARTCARD_EXTENSION.

Channel

Contiene el número de canal lógico. Este miembro es opcional. El significado exacto de este miembro depende del tipo de tarjeta inteligente, como se muestra en la tabla siguiente.

Tipo de tarjeta inteligente Significado del valor en el campo de canal
Lector serie Número de puerto
Lector paralelo Número de puerto
Lector SCSI Identificador de SCSI
Lector de teclado 0
Lector USB Número de dispositivo
 

Para obtener más información, consulte la parte 3 de la especificación de interoperabilidad para iccs y sistemas informáticos personales.

CLKFrequency

Estructura con los miembros siguientes:

CLKFrequency.Default

Contiene la frecuencia de reloj estándar a la que se ejecuta el lector, en kilohercios y codificado en formato little-endian. Por ejemplo, 3,58 MHz se codifica como 3580. Este miembro es obligatorio.

CLKFrequency.Max

Contiene la frecuencia de reloj máxima a la que el lector puede ejecutarse, en kilohercios y codificado en formato little-endian. Este miembro es obligatorio.

DataRate

Estructura con los miembros siguientes:

DataRate.Default

Contiene la velocidad de datos estándar del lector, en unidades de bits por segundo y codificadas en formato little-endian. Este miembro es obligatorio.

DataRate.Max

Contiene la velocidad de datos máxima del lector, en unidades de bits por segundo y codificadas en formato little-endian. Este miembro es obligatorio.

MaxIFSD

Contiene el tamaño máximo del búfer del lector. Este valor informa a la tarjeta inteligente al principio de una transmisión T=1 del número máximo de bytes que se pueden recibir en un paquete. Este miembro es obligatorio.

PowerMgmtSupport

Indica el tipo de administración de energía que admite la tarjeta. Un valor de cero indica que la tarjeta inteligente no admite la administración de energía.

CardConfiscated

Si es TRUE, indica que se ha confiscado la tarjeta inteligente.

DataRatesSupported

Estructura con los miembros siguientes:

DataRatesSupported.List

Contiene una lista de velocidades de datos, en bits por segundo, compatibles con el lector. Este miembro se usa con la solicitud PTS. Normalmente, el controlador lector establece este miembro en un puntero a una matriz estática de valores largos sin signo que contienen las tasas de datos admitidas. Si el lector no admite diferentes velocidades de datos, deje este miembro vacío. Este miembro es opcional.

DataRatesSupported.Entries

Contiene el número de entradas de lista vinculada en DataRatesSupported.List. Este miembro es opcional.

_DataRatesSupported

Estructura con los siguientes miembros:

CLKFrequenciesSupported

Estructura con los siguientes miembros:

CLKFrequenciesSupported.List

Contiene una lista de frecuencias de reloj, en kilohercios, compatibles con el lector. Este miembro se usa con la solicitud PTS. Normalmente, el controlador establece este miembro en un puntero a una matriz estática de valores largos sin signo que contienen las frecuencias de reloj admitidas. Si el lector no admite frecuencias de reloj diferentes, deje este miembro vacío. Este miembro es opcional.

CLKFrequenciesSupported.Entries

Contiene el número de entradas de lista vinculada de CLKFrquenciesSupported.List. Este miembro es opcional.

_CLKFrequenciesSupported

Estructura con los siguientes miembros:

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

Reservado para uso del sistema.

Comentarios

El controlador del lector de tarjetas inteligentes debe mantener esta estructura.

Requisitos

Requisito Valor
Header smclib.h (incluya Smclib.h)