共用方式為


ISCardISO7816::ReadRecord 方法

[ ReadRecord 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。

ReadRecord方法會建構應用程式通訊協定資料單位, (APDU) 命令,以讀取指定記錄的內容或基礎檔案之一記錄的開頭部分。

語法

HRESULT ReadRecord(
  [in]      BYTE       byRecordId,
  [in]      BYTE       byRefCtrl,
  [in]      LONG       lBytesToRead,
  [in, out] LPSCARDCMD *ppCmd
);

參數

byRecordId [in]

要讀取之第一筆記錄的記錄號碼或識別碼, (00 表示目前記錄) 。

byRefCtrl [in]

參考控制項的編碼。

意義
目前的 EF
位位置:00000---
目前選取的 EF。
簡短 EF 識別碼
位位置:xxxxx---
簡短 EF 識別碼。
RFU
位位置:11111---
記錄#
位位置:-----1xx
P1 中的記錄號碼使用量。
讀取記錄
位位置:-----100
讀取記錄 P1。
最多到最後一個
位位置:-----101
讀取 P1 到最後一筆的所有記錄。
最多 P1
位位置:-----110
讀取最後一筆到 P1 的所有記錄。
RFU
位位置:-----111
記錄識別碼
位位置:-----0xx
P1 中的記錄號碼使用量。
第一次發生
位位置:-----000
讀取第一次出現。
上次發生
位位置:-----001
讀取上次出現次數。
下一個發生
位位置:-----010
讀取下一個出現專案。
[上一步]
位位置:-----011
讀取先前出現的專案。
祕密
位位置:---xxxxx

 

lBytesToRead [in]

要從透明 EF 讀取的位元組數目。

如果 Le 欄位只包含零,則視 P2 的 b3b2b1 和短長度限制為 256 或 65536 的長度,命令應該完全讀取單一要求的記錄或要求的記錄序列。

ppCmd [in, out]

在輸入時, ISCardCmd 介面物件的指標或 Null

傳回時,它會填入此作業所建構的 APDU 命令。 如果 ppCmd 設定為 Null,則會在內部建立 智慧卡ISCardCmd 物件,並透過 ppCmd 指標傳回。

傳回值

方法會傳回下列其中一個可能的值。

傳回碼 描述
S_OK
作業順利完成。
E_INVALIDARG
無效的參數。
E_POINTER
傳入錯誤的指標。
E_OUTOFMEMORY
記憶體不足。

 

備註

只有在 智慧卡 的安全性狀態符合所讀取基礎檔案的安全性屬性時,才能執行封裝的命令。

如果在發出此命令時選取了另一個基本檔案,系統可能會處理該檔案,而不會識別目前選取的檔案。

當命令包含有效的簡短基本識別碼時,它會將檔案設定為目前的基本檔案。

無法讀取沒有記錄結構的基本檔案。 如果套用至沒有記錄結構的基本檔案,封裝的命令就會中止。

如需此介面提供之所有方法的清單,請參閱 ISCardISO7816

除了上述 COM 錯誤碼之外,如果呼叫智慧卡函式來完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值

規格需求

需求
最低支援的用戶端
Windows XP [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2003 [僅限傳統型應用程式]
用戶端支援結束
Windows XP
伺服器終止支援
Windows Server 2003
標頭
Scardssp.h
類型程式庫
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID_ISCardISO7816定義為 53B6AA68-3F56-11D0-916B-00AA00C18068

另請參閱

AppendRecord

ISCardISO7816

UpdateRecord

WriteRecord