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
リーダーの標準データ レートを 1 秒あたりのビット単位で格納し、リトル エンディアン形式でエンコードします。 このメンバーは必須です。
DataRate.Max
リーダーの最大データ レートを 1 秒あたりのビット単位で格納し、リトル エンディアン形式でエンコードします。 このメンバーは必須です。
MaxIFSD
リーダーの最大バッファー サイズを格納します。 この値は、T=1 伝送の開始時に、1 つのパケットで受信できる最大バイト数をスマート カードに通知します。 このメンバーは必須です。
PowerMgmtSupport
カードがサポートする電源管理の種類を示します。 値が 0 の場合は、スマート カードが電源管理をサポートしていないことを示します。
CardConfiscated
TRUE 場合は、スマート カードが没収されたことを示します。
DataRatesSupported
次のメンバーを持つ構造体。
DataRatesSupported.List
リーダーでサポートされているデータ レートの一覧 (1 秒あたりのビット数) が含まれます。 このメンバーは PTS 要求と共に使用されます。 リーダー ドライバーは通常、サポートされているデータ レートを含む符号なし long 値の静的配列へのポインターにこのメンバーを設定します。 リーダーが異なるデータ レートをサポートしていない場合は、このメンバーを空のままにします。 このメンバーは省略可能です。
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 を含む) |