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
);
parameters
-
byClassId [in]
-
命令类标识符。
-
byInsId [in]
-
命令指令标识符。
-
byP1 [in]
-
命令的第一个参数。
-
byP2 [in]
-
命令的第二个参数。
-
pbyData [in]
-
指向命令的数据部分的指针。
-
p1Le [in]
-
指向包含返回数据的预期长度的 LONG 整数的指针。
返回值
方法返回以下可能值之一。
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
其中一个参数无效。 |
|
传入了错误的指针。 |
|
内存不足。 |
备注
若要将命令封装到另一个命令中,请调用 封装。
有关此接口提供的所有方法的列表,请参阅 ISCardCmd。
除了上面列出的 COM 错误代码之外,如果调用智能卡函数来完成请求,则此接口可能返回智能卡错误代码。 有关详细信息,请参阅 智能卡返回值。
示例
以下示例演示如何构造命令 APDU。 该示例假定 pISCardCmd 是指向 ISCardCmd 接口实例的有效指针,pIByteRequest 是指向 IByteBuffer 接口实例的有效指针,该接口实例使用先前对 IByteBuffer::Initialize 方法的调用初始化。
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 |
另请参阅