ISCardISO7816::ManageChannel 方法
[ ManageChannel 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 Service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。]
ManageChannel方法會建構應用程式通訊協定資料單位, (APDU) 命令來開啟和關閉邏輯通道。
open 函式會開啟基本邏輯通道以外的新邏輯通道。 系統會提供選項給卡片來指派邏輯通道號碼,或提供給卡片的邏輯通道號碼。
close 函式會明確關閉基本通道以外的邏輯通道。 成功關閉之後,邏輯通道應該可供重複使用。
語法
HRESULT ManageChannel(
[in] BYTE byChannelState,
[in] BYTE byChannel,
[in, out] LPSCARDCMD *ppCmd
);
參數
-
byChannelState [in]
-
P1 的位 b8 用來指出 open 函式或 close 函式;如果 b8 為 0,則 MANAGE 通道應開啟邏輯通道,如果 b8 為 1,則 MANAGE 通道應關閉邏輯通道:
P1 = '00' 以開啟
P1 = '80' 關閉
其他值為 RFU
-
byChannel [in]
-
若為 open 函式 (P1 = '00') ,則會使用位 b1 和 b2 of P2 以與類別位元組相同的方式編碼邏輯通道號碼,P2 的其他位是 RFU。
當 b1 和 b2 的 P2 為 Null時,卡片會指派邏輯通道號碼,以 b1 和 b2 表示資料欄位的位傳回。
當 b1 和/或 b2 的 P2 不是 Null時,它們會撰寫基本通道號碼以外的邏輯通道號碼;接著,卡片會開啟外部指派的邏輯通道號碼。
-
ppCmd [in, out]
-
在輸入時, ISCardCmd 介面物件的指標或 Null。
傳回時,它會填入此作業所建構的 APDU 命令。 如果ppCmd設定為Null,則會使用ppCmd指標在內部建立並傳回智慧卡ISCardCmd物件。
傳回值
方法會傳回下列其中一個可能的值。
傳回碼 | 描述 |
---|---|
|
作業順利完成。 |
|
無效的參數。 |
|
傳入不正確的指標。 |
|
記憶體不足。 |
備註
從基本邏輯通道成功執行 open 函式時,應該以隱含方式選取 MF 做為目前的 DF,而新邏輯通道的安全性狀態應該與 ATR 之後的基本邏輯通道相同。 新邏輯通道的安全性狀態應該與任何其他邏輯通道的安全性狀態分開。
從邏輯通道成功執行 open 函式時,這不是基本通道,發出命令之邏輯通道的目前 DF 將會選取為目前的 DF。 此外,新邏輯通道的安全性狀態應該與執行 open 函式之邏輯通道的安全性狀態相同。
成功關閉函式之後,與這個邏輯通道相關的安全性狀態會遺失。
如需此介面提供之所有方法的清單,請參閱 ISCardISO7816。
除了上面所列的 COM 錯誤碼之外,如果呼叫智慧卡函式以完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限桌面應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_ISCardISO7816定義為 53B6AA68-3F56-11D0-916B-00AA00C18068 |
另請參閱