基本介紹
- 外文名:PC/SC
- 提出者:微軟公司
- 基於平台:WINDOWS
- 工業標準:-ISO7816
目標,主要組成,程式的安裝,方法及示例,
目標
遵從ICC和PC的標準並在適當的地方予在擴充
跨平台的可操作性,使該規範可在多種硬體和軟體平台上實現
應用程式可以採用不同廠商提供的產品(獨立於廠商)
建立套用級的智慧卡服務接口,推廣ICC在PC上的套用,並促成PC採用ICC作主標準設備。
主要組成
PC/SC體系由三個主要部件組成,分別規定的作業系統廠商、讀寫器(IFD)廠商、智慧卡(ICC)廠商的職責。
i. IFD
(即讀寫器)控制器是由IFD廠商提供的可安裝部件。
ii. Resource manager(資源管理器)使用Win32API函式實現,是由作業系統廠商提供的系統級部件。
iii. Service Providers(服務提供者),服務程式是由廠商提供的可安裝部件,用於提供訪問特殊服務的手段,其使用的是基本COM的界面方式。
程式的安裝
驅動程式會自動安裝到系統中,就可以按PC/SC規範使用CRW系列讀卡器。
方法及示例
PC/SC的API函式由作業系統提供,在微軟公司提供的MSDN(2000年10月版)有相關幫助(路徑\\MSDN\Platform SDK\Security\Smart Card),函式聲明在Winscard.h中,所用的庫是Scarddlg.lib,這裡只是摘錄其中一個來說明:ScardConnect。
ScardConnect函式用來建立應用程式與插在讀卡器中的智慧卡的連線。如果在指定的讀卡器中沒有卡片,則返回一個錯誤。
LONG ScardConnect(IN SCARDCONTEXT hContext, IN LPCTSTR szReader, IN DWORD dwShareMode, IN DWORD dwPreferredProtocols, OUT LPSCARDHANDLE phCard, OUT LPDWORD pdwActiveProtocol);
參數:hContext:標識資源管理器環境的句柄,這個資源管理器環境是預先調用SCardEstablishContext來設定的。
SzReader:與目標卡相連的讀卡器名字
DwShareMode:用來標識其它應用程式是否與該卡相連的標誌。可以取以下值
取值 含義
SCARD_SHARE_SHARED 本應用程式將與其它應用程式共享這張卡
SCARD_SHARE_EXCLUSIVE 本應用程式將不會與其它應用程式共享這張卡
SCARD_SHARE_DIRECT 本應用程式指定讀卡器為私有,並直接控制卡片,其它應用程式不能訪問它
DwPreferredProtocols:連線時,所能接收的協定位標誌。可以取以下值,也可以進行OR操作
取值 含義
SCARD_PROTOCOL_TO T=0 是可能接收的協定
SCARD_PROTOCOL_T1 T=1 是可能接收的協定
0 該參數只有當dwShareMode設定為SCARD_SHARE_DIRECT時,才可能為零。因此,由驅動來完成無協定的通訊直到ScardControl傳送控制指示
IOCTL_SMARTCARD_SET_PROTOCOL
PhCard:返回一個句柄,標識智慧卡與指寫讀卡器的連線
PdwActiveProtocol:返回一個標識,標識確定有效的協定,可以取以下值
取值 含義
SCARD_PROTOCOL_TO T=0 是有效的協定
SCARD_PROTOCOL_T1 T=1 是有效的協定
SCARD_PROTOCOL_UNDEFINED 已經指定為SCARD_SHARE_DIRECT