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