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 | 插入智慧卡並已選取通訊協定。 |
若要存取此欄位,必須使用SMARTCARD_EXTENSION OsData-SpinLock> 成員所指向的微調鎖定來循序化。
Channel
包含邏輯通道編號。 這個成員是選擇性的。 此成員的確切意義取決於智慧卡的類型,如下表所示。
智慧卡的類型 | 通道欄位中值的意義 |
---|---|
序列讀取器 | 連接埠號碼 |
平行讀取器 | 連接埠號碼 |
SCSI 讀取器 | SCSI 識別碼 |
鍵盤助讀程式 | 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
包含讀取器所支援的時鐘頻率清單,以 kbhertz 為單位。 這個成員會與 PTS 要求搭配使用。 驅動程式通常會將此成員設定為包含所支援時鐘頻率之不帶正負號長值的靜態陣列指標。 如果讀取器不支援不同的時鐘頻率,請將此成員保留空白。 這個成員是選擇性的。
CLKFrequenciesSupported.Entries
包含 CLKFrquenciesSupported.List 的連結清單項目數目。 這個成員是選擇性的。
_CLKFrequenciesSupported
具有下列成員的結構:
Reserved1[100 - sizeof(ULONG)- sizeof(struct _DataRatesSupported)- sizeof(struct _CLKFrequenciesSupported)]
保留供系統使用。
備註
智慧卡閱讀機驅動程式必須維護此結構。
規格需求
需求 | 值 |
---|---|
標頭 | smclib.h (包含 Smclib.h) |