ISCardCmd::BuildCmd 方法
[ BuildCmd 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 Service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。]
BuildCmd方法會建構有效的命令應用程式通訊協定資料單位, (APDU) ,以便傳輸至智慧卡。
語法
HRESULT BuildCmd(
[in] BYTE byClassId,
[in] BYTE byInsId,
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pbyData,
[in] LONG *p1Le
);
參數
-
byClassId [in]
-
命令類別識別碼。
-
byInsId [in]
-
命令指令識別碼。
-
byP1 [in]
-
命令的第一個參數。
-
byP2 [in]
-
命令的第二個參數。
-
pbyData [in]
-
命令之資料部分的指標。
-
p1Le [in]
-
LONG 整數的指標,其中包含所傳回資料的預期長度。
傳回值
方法會傳回下列其中一個可能的值。
傳回碼 | 描述 |
---|---|
|
作業順利完成。 |
|
其中一個參數無效。 |
|
傳入不正確的指標。 |
|
記憶體不足。 |
備註
若要將命令封裝至另一個命令,請呼叫 Encapsulate。
如需此介面提供之所有方法的清單,請參閱 ISCardCmd。
除了上面所列的 COM 錯誤碼之外,如果呼叫智慧卡函式以完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值。
範例
下列範例示範如何建構命令 APDU。 此範例假設 pISCardCmd 是ISCardCmd介面實例的有效指標,而 pIByteRequest 是使用先前呼叫IByteBuffer::Initialize方法初始化之IByteBuffer介面實例的有效指標。
LONG lLe = 0;
HRESULT hr;
hr = pISCardCmd->BuildCmd(0x00, // Some cards prefer 0xC0
0xa4, // 'Select File'
0x00,
0x00,
pIByteRequest,
&lLe);
if (FAILED(hr))
{
printf("Failed ISCardCmd::BuildCmd\n");
// Take other error handling action as needed.
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限桌面應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_ISCardCmd定義為 D5778AE3-43DE-11D0-9171-00AA00C18068 |
另請參閱