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 driver de leitor de cartão 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 de série
SCARD_READER_TYPE_PCMCIA Leitor 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 deglutição.
SCARD_READER_EJECTS O leitor pode ejetar o cartão inteligente.
SCARD_READER_CONFISCATES O leitor pode engolir o 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.

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

O acesso a esse campo deve ser sequencializado usando o bloqueio de rotação apontado pelo osData-> membro 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 de série Número da porta
Leitor paralelo Número da porta
Leitor SCSI SCSI ID
Leitor de teclado 0
Leitor de USB Número do dispositivo
 

Para obter mais informações, consulte a Parte 3 da especificação de interoperabilidade para ICCs e sistemas de computador pessoais.

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 em 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 executar, em quilohertz, e codificado em 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 em 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 em 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 compatível com o cartão. 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, que são 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 diferentes taxas de dados, deixe esse membro vazio. Esse membro é opcional.

DataRatesSupported.Entries

Contém o número de entradas de lista vinculada 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 quilohertz, 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 compatíveis. Se o leitor não der suporte a diferentes frequências de relógio, deixe esse membro vazio. Esse membro é opcional.

CLKFrequenciesSupported.Entries

Contém o número de entradas de lista vinculada 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.

Observações

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

Requisitos

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