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->SpinLock 成員所指向 SMARTCARD_EXTENSION的微調鎖定來循序存取此字段。
Channel
包含邏輯通道號碼。 這個成員是選擇性的。 此成員的確切意義取決於智慧卡的類型,如下表所示。
智慧卡的類型 | 通道欄位中的值意義 |
---|---|
序列讀取器 | 埠號碼 |
平行讀取器 | 埠號碼 |
SCSI 讀取器 | SCSI 識別碼 |
鍵盤助讀程式 | 0 |
USB 讀取器 | 裝置號碼 |
如需詳細資訊,請參閱 ICC 和個人電腦系統 互作性規格的第 3 部分。
CLKFrequency
具有下列成員的結構:
CLKFrequency.Default
包含讀取器以 kbhertz 執行並以小端格式編碼的標準時鐘頻率。 例如,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 (include Smclib.h) |