Compartilhar via


estrutura SCARD_READER_CAPABILITIES (smclib.h)

A estrutura SCARD_READER_CAPABILITIES contém informações de estado sobre o leitor de cartão inteligente.

Sintaxe

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;

Membros

SupportedProtocols

Deve ser definido como uma máscara de bits que reflita os protocolos assíncronos ou síncronos aos quais o leitor de cartão e o cartão driver de leitor dão suporte. Esse membro é necessário.

Reserved

Reservado para uso do sistema.

ReaderType

Esse membro contém o tipo de leitor e é necessário. Esse membro pode ter um dos valores na tabela a seguir.

Valor Significado
SCARD_READER_TYPE_SERIAL Leitor serial
SCARD_READER_TYPE_PCMCIA Leitor de PCMCIA
SCARD_READER_TYPE_KEYBOARD Leitor anexado ao teclado
SCARD_READER_TYPE_USB Leitor DE USB
SCARD_READER_TYPE_PARALELL Leitor paralelo
SCARD_READER_TYPE_SCSI Leitor scsi
SCARD_READER_TYPE_IDE Leitor de IDE
SCARD_READER_TYPE_TPM Leitor que usa um chip TPM para armazenamento de material de chave e operações criptográficas
SCARD_READER_TYPE_VENDOR Leitor que usa um barramento de fornecedor proprietário

MechProperties

Contém um valor formado usando um OR bit a bit de todas as propriedades de leitor aplicáveis mostradas na tabela a seguir. Esse membro é opcional.

Valor Significado
SCARD_READER_SWALLOWS O leitor tem um mecanismo de engolimento.
SCARD_READER_EJECTS O leitor pode ejetar a cartão inteligente.
SCARD_READER_CONFISCATES O leitor pode engolir a cartão inteligente.

CurrentState

Esse membro contém o status do cartão e é necessário. Esse membro pode ter um dos valores listados na tabela a seguir.

Status Significado
SCARD_UNKNOWN O leitor não tem informações sobre o status.
SCARD_ABSENT Nenhuma cartão inteligente é inserida.
SCARD_PRESENT Uma cartão inteligente é inserida.
SCARD_SWALLOWED Uma cartão inteligente é inserida e o leitor a engoliu.
SCARD_POWERED O cartão inteligente está ativado, mas o leitor não reconhece seu modo.
SCARD_NEGOTIABLE Uma cartão inteligente é inserida e aguarda a negociação de protocolo.
SCARD_SPECIFIC Uma cartão inteligente é inserida e um protocolo foi selecionado.
 

O acesso a esse campo deve ser sequencializado usando o bloqueio de rotação apontado pelo membro OsData-SpinLock> do SMARTCARD_EXTENSION.

Channel

Contém o número do canal lógico. Esse membro é opcional. O significado exato desse membro depende do tipo de cartão inteligente, conforme mostrado na tabela a seguir.

Tipo de cartão inteligente Significado do valor no campo de canal
Leitor serial Número da porta
Leitor paralelo Número da porta
Leitor scsi ID SCSI
Leitor de teclado 0
Leitor DE USB Número do dispositivo
 

Para obter mais informações, consulte Parte 3 da Especificação de Interoperabilidade para ICCs e Sistemas de Computador Pessoal.

CLKFrequency

Uma estrutura com os seguintes membros:

CLKFrequency.Default

Contém a frequência de relógio padrão na qual o leitor é executado, em quilohertz, e codificado no formato little-endian. Por exemplo, 3,58 MHz é codificado como 3580. Esse membro é necessário.

CLKFrequency.Max

Contém a frequência máxima do relógio na qual o leitor pode ser executado, em kilohertz, e codificado no formato little-endian. Esse membro é necessário.

DataRate

Uma estrutura com os seguintes membros:

DataRate.Default

Contém a taxa de dados padrão do leitor, em unidades de bits por segundo, e codificada no formato little-endian. Esse membro é necessário.

DataRate.Max

Contém a taxa máxima de dados do leitor, em unidades de bits por segundo, e codificada no formato little-endian. Esse membro é necessário.

MaxIFSD

Contém o tamanho máximo do buffer do leitor. Esse valor informa o cartão inteligente no início de uma transmissão T=1 do número máximo de bytes que podem ser recebidos em um pacote. Esse membro é necessário.

PowerMgmtSupport

Indica o tipo de gerenciamento de energia ao qual o cartão dá suporte. Um valor zero indica que o cartão inteligente não dá suporte ao gerenciamento de energia.

CardConfiscated

Se VERDADEIRO, indica que o cartão inteligente foi confiscado.

DataRatesSupported

Uma estrutura com os seguintes membros:

DataRatesSupported.List

Contém uma lista de taxas de dados, em bits por segundo, compatíveis com o leitor. Esse membro é usado com a solicitação PTS. O driver de leitor geralmente define esse membro como um ponteiro para uma matriz estática de valores longos sem sinal que contêm as taxas de dados com suporte. Se o leitor não der suporte a taxas de dados diferentes, deixe esse membro vazio. Esse membro é opcional.

DataRatesSupported.Entries

Contém o número de entradas de lista vinculadas em DataRatesSupported.List. Esse membro é opcional.

_DataRatesSupported

Uma estrutura com os seguintes membros:

CLKFrequenciesSupported

Uma estrutura com os seguintes membros:

CLKFrequenciesSupported.List

Contém uma lista de frequências de relógio, em kilohertz, que são compatíveis com o leitor. Esse membro é usado com a solicitação PTS. O driver geralmente define esse membro como um ponteiro para uma matriz estática de valores longos sem sinal que contêm as frequências de relógio com suporte. Se o leitor não der suporte a frequências de relógio diferentes, deixe esse membro vazio. Esse membro é opcional.

CLKFrequenciesSupported.Entries

Contém o número de entradas de lista vinculadas de CLKFrquenciesSupported.List. Esse membro é opcional.

_CLKFrequenciesSupported

Uma estrutura com os seguintes membros:

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

Reservado para uso do sistema.

Comentários

Essa estrutura deve ser mantida pelo driver de leitor de cartão inteligente.

Requisitos

Requisito Valor
Cabeçalho smclib.h (inclua Smclib.h)