SCARD_READER_CAPABILITIES结构(smclib.h)

SCARD_READER_CAPABILITIES结构保存有关智能卡读卡器的状态信息。

语法

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;

成员

SupportedProtocols

必须设置为一个位掩码,该掩码反映卡片读取器和读卡器驱动程序支持的异步或同步协议。 此成员是必需的。

Reserved

保留供系统使用。

ReaderType

此成员包含读取器类型,并且是必需的。 此成员可以具有下表中的值之一。

价值 意义
SCARD_READER_TYPE_SERIAL 串行读取器
SCARD_READER_TYPE_PCMCIA PCMCIA 读取器
SCARD_READER_TYPE_KEYBOARD 键盘附加的阅读器
SCARD_READER_TYPE_USB USB 读取器
SCARD_READER_TYPE_PARALELL 并行读取器
SCARD_READER_TYPE_SCSI SCSI 读取器
SCARD_READER_TYPE_IDE IDE 读取器
SCARD_READER_TYPE_TPM 使用 TPM 芯片进行密钥材料存储和加密作的读取器
SCARD_READER_TYPE_VENDOR 使用专有供应商总线的读取器

MechProperties

包含通过采用下表中显示的所有适用读取器属性按位 OR 构成的值。 此成员是可选的。

价值 意义
SCARD_READER_SWALLOWS 读取器具有吞咽机制。
SCARD_READER_EJECTS 读取器可以弹出智能卡。
SCARD_READER_CONFISCATES 读取器可以吞下智能卡。

CurrentState

此成员包含卡片的状态,并且是必需的。 此成员可以具有下表中列出的值之一。

地位 意义
SCARD_UNKNOWN 读取者没有有关状态的信息。
SCARD_ABSENT 未插入智能卡。
SCARD_PRESENT 插入智能卡。
SCARD_SWALLOWED 插入智能卡,读取器已吞没它。
SCARD_POWERED 智能卡处于打开状态,但读取器无法识别其模式。
SCARD_NEGOTIABLE 插入智能卡并等待协议协商。
SCARD_SPECIFIC 插入智能卡并已选择协议。
 

必须使用 OsData->SpinLockSMARTCARD_EXTENSION成员指向的旋转锁对此字段的访问进行顺序化。

Channel

包含逻辑通道号。 此成员是可选的。 此成员的确切含义取决于智能卡的类型,如下表所示。

智能卡的类型 通道字段中值的含义
串行读取器 端口号
并行读取器 端口号
SCSI 读取器 SCSI ID
键盘阅读器 0
USB 读取器 设备编号
 

有关详细信息,请参阅 ICC 和个人计算机系统的 互作性规范的第 3 部分

CLKFrequency

具有以下成员的结构:

CLKFrequency.Default

包含读取器以千字节为单位以小字节格式编码的标准时钟频率。 例如,3.58 MHz 编码为 3580。 此成员是必需的。

CLKFrequency.Max

包含读取器可以运行的最大时钟频率(以千赫为单位),并采用小字节格式进行编码。 此成员是必需的。

DataRate

具有以下成员的结构:

DataRate.Default

包含读取器的标准数据速率(以每秒位数为单位)并采用小端格式进行编码。 此成员是必需的。

DataRate.Max

包含读取器的最大数据速率(以每秒位数为单位),并采用小端格式进行编码。 此成员是必需的。

MaxIFSD

包含读取器的最大缓冲区大小。 此值在 T=1 传输开始时通知智能卡,该传输的最大字节数可以在一个数据包中接收。 此成员是必需的。

PowerMgmtSupport

指示卡支持的电源管理类型。 值为零表示智能卡不支持电源管理。

CardConfiscated

如果 TRUE,则表示智能卡已被没收。

DataRatesSupported

具有以下成员的结构:

DataRatesSupported.List

包含读取器支持的数据速率列表(以位/秒为单位)。 此成员与 PTS 请求一起使用。 读取器驱动程序通常将此成员设置为指向包含受支持数据速率的无符号长值的静态数组的指针。 如果读取器不支持不同的数据速率,请将此成员留空。 此成员是可选的。

DataRatesSupported.Entries

包含 DataRatesSupported.List 中的链接列表条目数。 此成员是可选的。

_DataRatesSupported

具有以下成员的结构:

CLKFrequenciesSupported

具有以下成员的结构:

CLKFrequenciesSupported.List

包含读取器支持的时钟频率列表(以千赫为单位)。 此成员与 PTS 请求一起使用。 驱动程序通常将此成员设置为指向包含支持的时钟频率的无符号长值的静态数组的指针。 如果读取器不支持不同的时钟频率,请将此成员留空。 此成员是可选的。

CLKFrequenciesSupported.Entries

包含 CLKFrquenciesSupported.List 的链接列表条目数。 此成员是可选的。

_CLKFrequenciesSupported

具有以下成员的结构:

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

保留供系统使用。

言论

此结构必须由智能卡读卡器驱动程序维护。

要求

要求 价值
标头 smclib.h (包括 Smclib.h)