ISCardISO7816::WriteBinary 方法
[ WriteBinary 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。
WriteBinary方法會建構應用程式通訊協定資料單位, (APDU) 命令,將二進位值寫入基礎檔案。
根據檔案屬性,命令會執行下列其中一項作業:
- 已存在於卡片中之位的邏輯 OR,且命令 APDU 中提供的位 (檔案位的邏輯清除狀態為 0) 。
- 卡片中已經有位的邏輯 AND,其中具有在 APDU 命令中提供的位, (檔案位的邏輯清除狀態為 1) 。
- 命令 APDU 中指定位的一次性寫入。
當資料編碼位元組中未指定任何指示時,就會套用邏輯 OR 行為。
語法
HRESULT WriteBinary(
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pData,
[in, out] LPSCARDCMD *ppCmd
);
參數
-
byP1 [in]
-
從二進位檔案開頭 (EF) 的寫入位置位移。 如果 P1 中的 b8=1,則 p1 的 b7 和 b6 會設定為零 (RFU 位) ,b5 到 B1 的 P1 是簡短的 EF 識別碼,而 P2 則是從檔案開頭以資料單位寫入的第一個位元組位移。 如果 P1 中的 b8=0,則 P1||P2 是要從檔案開頭以資料單位寫入之第一個位元組的位移。
-
byP2 [in]
-
從二進位檔案開頭 (EF) 的寫入位置位移。 如果 P1 中的 b8=1,則 p1 的 b7 和 b6 會設定為零 (RFU 位) ,b5 到 B1 的 P1 是簡短的 EF 識別碼,而 P2 則是從檔案開頭以資料單位寫入的第一個位元組位移。 如果 P1 中的 b8=0,則 P1||P2 是要從檔案開頭以資料單位寫入之第一個位元組的位移。
-
pData [in]
-
要寫入之資料單位字串的指標。
-
ppCmd [in, out]
-
在輸入時, ISCardCmd 介面物件的指標或 Null。
傳回時,它會填入此作業所建構的 APDU 命令。 如果 ppCmd 設定為 Null,則會在內部建立 智慧卡ISCardCmd 物件,並透過 ppCmd 指標傳回。
傳回值
方法會傳回下列其中一個可能的值。
傳回碼 | 描述 |
---|---|
|
作業順利完成。 |
|
無效的參數。 |
|
傳入錯誤的指標。 |
|
記憶體不足。 |
備註
只有在 智慧卡 的安全性狀態符合所處理基礎檔案的安全性屬性時,才能執行封裝的命令。
當命令包含有效的簡短基本識別碼時,它會將檔案設定為目前的基本檔案。
當寫入二進位作業套用至單次寫入 EF 的資料單位時,如果資料單位的內容或邏輯清除狀態) (指標的內容與邏輯清除狀態指標與邏輯清除狀態指標不同,任何參考此資料單位的進一步寫入作業都會中止。
沒有透明結構的基本檔案無法寫入。 如果套用至沒有透明結構的基本檔案,封裝的命令會中止。
如需此介面提供之所有方法的清單,請參閱 ISCardISO7816。
除了上述 COM 錯誤碼之外,如果呼叫智慧卡函式來完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限傳統型應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_ISCardISO7816定義為 53B6AA68-3F56-11D0-916B-00AA00C18068 |
另請參閱