共用方式為


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)