ISCardISO7816::SelectFile 方法
[ SelectFile 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。
SelectFile方法會建構應用程式通訊協定資料單位 (APDU) 命令,以在邏輯通道內設定目前的基本檔案。 後續的命令可能會透過邏輯通道隱含參考目前的檔案。
在卡片檔案存放區內選取目錄 (DF) ,這可能是檔案存放區的根 (MF) ,使其成為目前的 DF。 在這類選取範圍之後,可以透過該邏輯通道來參考隱含目前的基本檔案。
選取基本檔案會將選取的檔案及其父系設定為目前的檔案。
重設答案之後,除非在歷程記錄位元組或初始資料字串中以不同方式指定,否則會透過基本邏輯通道隱含地選取 MF。
語法
HRESULT SelectFile(
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pData,
[in] LONG lBytesToRead,
[in, out] LPSCARDCMD *ppCmd
);
參數
-
byP1 [in]
-
選取控制項。
P1 (字) 中的大位元組:8 7 6 5 4 3 2 1 意義 - 000000xx
選取檔案識別碼 - 00000000
EF、DF 或 MF - 00000001
子 DF - 00000010
DF 下的 EF - 00000011
目前 DF 的父 DF 當 P1=00 時,卡片會因為檔案識別碼的特定程式碼而知道,或者,如果要選取的檔案是 MF、DF 或 EF,則會知道命令執行的內容。
當 P1-P2=0000 時,如果提供檔案識別碼,則它應該在下列環境中是唯一的:
- 目前 DF 的立即子系
- 父 DF
- 父 DF 的立即子系
如果 P1-P2=0000,且資料欄位是空的或等於 3F00,則選取 MF。
當 P1=04 時,資料欄位是 DF 名稱,可能是右截斷。
支援時,具有相同資料欄位的連續這類命令應該選取名稱與資料欄位相符 (的 DF,也就是從命令資料欄位) 開始。 如果卡片接受具有空白資料欄位的命令,則可以連續選取所有或部分的 DF。
-
byP2 [in]
-
選取控制項。
-
pData [in]
-
如有需要,作業的資料;else, Null。 在此參數中傳遞的資料類型包括:
- 檔案識別碼
- 來自 MF 的路徑
- 來自目前 DF 的路徑
- DF 名稱
-
lBytesToRead [in]
-
空 (,也就是回應中預期的資料長度為 0) 或最大長度。
-
ppCmd [in, out]
-
在輸入時, ISCardCmd 介面物件的指標或 Null。
傳回時,它會填入此作業所建構的 APDU 命令。 如果 ppCmd 設定為 Null,則會在內部建立 智慧卡ISCardCmd 物件,並透過 ppCmd 指標傳回。
傳回值
方法會傳回下列其中一個可能的值。
傳回碼 | 描述 |
---|---|
|
作業順利完成。 |
|
無效的參數。 |
|
傳入錯誤的指標。 |
|
記憶體不足。 |
備註
除非另有指定,否則封裝命令的正確執行會根據下列規則修改安全性狀態:
- 當目前的基本檔案變更,或沒有目前的基本檔案時,先前目前基礎檔案特有的安全性狀態就會遺失。
- 當目前的檔案存放區目錄 (DF) 的子代或與先前目前的 DF 相同時,會遺失先前目前 DF 特有的安全性狀態。 維護先前和新版 DF 的所有常見上階通用安全性狀態。
如需此介面提供之所有方法的清單,請參閱 ISCardISO7816。
除了上述 COM 錯誤碼之外,如果呼叫智慧卡函式來完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限傳統型應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_ISCardISO7816定義為 53B6AA68-3F56-11D0-916B-00AA00C18068 |
另請參閱