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