共用方式為


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)