ISCardISO7816::UpdateRecord 方法
[ UpdateRecord 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 Service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。]
UpdateRecord方法會建構應用程式通訊協定資料單位, (APDU) 命令,以 APDU 命令中提供的位來更新特定記錄。
注意
使用目前記錄定址時,命令會在成功更新的記錄上設定記錄指標。
語法
HRESULT UpdateRecord(
[in] BYTE byRecordId,
[in] BYTE byRefCtrl,
[in] LPBYTEBUFFER pData,
[in, out] LPSCARDCMD *ppCmd
);
參數
-
byRecordId [in]
-
P1 值:
P1 = 00 指定目前記錄
P1 != '00' 是指定記錄的數目
-
byRefCtrl [in]
-
參考控制項 P2 的編碼:
值 意義 - 目前的 EF
位位置:00000---
目前選取的 EF。- 簡短 EF 識別碼
位位置:xxxxx---
簡短 EF 識別碼。- 第一筆記錄
位位置:-----000 - 最後一筆記錄
位位置:-----001 - 下一筆記錄
位位置:-----010 - 上一筆記錄
位位置:-----011 - P1 中的 Record #
位位置:-----100 -
pData [in]
-
要更新之記錄的指標。
-
ppCmd [in, out]
-
在輸入時, ISCardCmd 介面物件的指標或 Null。
傳回時,它會填入此作業所建構的 APDU 命令。 如果 ppCmd 設定為 Null,則會在內部建立 智慧卡ISCardCmd 物件,並透過 ppCmd 指標傳回。
傳回值
方法會傳回下列其中一個可能的值。
傳回碼 | 描述 |
---|---|
|
作業順利完成。 |
|
無效的參數。 |
|
傳入不正確的指標。 |
|
記憶體不足。 |
備註
只有在 智慧卡 的安全性狀態滿足所處理基礎檔案的安全性屬性時,才能執行封裝的命令。
當命令包含有效的簡短基本識別碼時,會將檔案設定為目前的基本檔案。 如果在發出此命令時選取另一個基本檔案,則此命令可能會在未識別目前選取的檔案的情況下進行處理。
如果建構的命令套用至線性固定或迴圈結構化基礎檔案,則如果記錄長度與現有記錄的長度不同,則會中止。
如果命令套用至線性變數結構化基礎檔案,當記錄長度與現有記錄的長度不同時,可能會執行該檔案。
命令的 「previous」 選項 (P2=xxxxx011) 套用至迴圈檔案,其行為與 AppendRecord所建構的命令相同。
無法讀取沒有記錄結構的基本檔案。 如果套用至沒有記錄結構的基本檔案,則建構的命令會中止。
如需此介面提供之所有方法的清單,請參閱 ISCardISO7816。
除了上面所列的 COM 錯誤碼之外,如果呼叫智慧卡函式以完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限桌面應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_ISCardISO7816定義為 53B6AA68-3F56-11D0-916B-00AA00C18068 |
另請參閱