ISCardISO7816::P utData 方法
[ PutData 方法可用于“要求”部分中指定的操作系统。 它不适用于 Windows Server 2003 Service Pack 1 (SP1) 及更高版本、Windows Vista、Windows Server 2008 和操作系统的后续版本。 智能卡模块提供类似的功能。]
PutData 方法 (APDU) 命令构造应用程序协议数据单元,该命令存储单个基元数据对象或构造的数据对象中包含的数据对象集,具体取决于所选文件。
如何存储对象 (写入一次和/或更新和/或追加) 取决于数据对象的定义或性质。
语法
HRESULT PutData(
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pData,
[in, out] LPSCARDCMD *ppCmd
);
parameters
-
byP1 [in]
-
P1-P2 的编码。
值 含义 - 0000 - 003F
RFU - 0040 - 00FF
P2 中的 BER-TLV 标记 (1 个字节) - 0100 - 01FF
应用程序数据 (专有编码) - 0200 - 02FF
P2 中的 SIMPLE-TLV 标记 - 0300 - 03FF
RFU - 0400 - 04FF
P1-P2 中的 BER-TLV 标记 (2 个字节) -
byP2 [in]
-
P1-P2 的编码。
值 含义 - 0000 - 003F
RFU - 0040 - 00FF
P2 中的 BER-TLV 标记 (1 个字节) - 0100 - 01FF
应用程序数据 (专有编码) - 0200 - 02FF
P2 中的 SIMPLE-TLV 标记 - 0300 - 03FF
RFU - 0400 - 04FF
P1-P2 中的 BER-TLV 标记 (2 个字节) -
pData [in]
-
指向包含要写入的参数和数据的字节缓冲区的指针。
-
ppCmd [in, out]
-
输入时,指向 ISCardCmd 接口对象的指针或 NULL。
返回时,会用此操作构造的 APDU 命令填充该命令。 如果 ppCmd 设置为 NULL,则会在内部创建智能卡ISCardCmd 对象并使用 ppCmd 指针返回。
返回值
方法返回以下可能值之一。
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
参数无效。 |
|
传入了错误的指针。 |
|
内存不足。 |
备注
仅当安全状态满足应用程序在函数 上下文 中定义的安全条件时,才能执行命令。
-
存储应用程序数据
-
当 P1-P2 的值在 0100 到 01FF 的范围内时,P1-P2 的值应是保留给卡内部测试和给定应用程序上下文中有意义的专有服务的标识符。
-
存储数据对象
-
当值 P1-P2 位于 0040 到 00FF 的范围内时,P2 的值应是单个字节上的 BER-TLV 标记。 保留值 00FF,用于指示数据字段携带 BER-TLV 数据对象。
当 P1-P2 的值在 0200 到 02FF 的范围内时,P2 的值应为 SIMPLE-TLV 标记。 值 0200 为 RFU。 保留值 02FF 以指示数据字段携带 SIMPLE-TLV 数据对象。
当 P1-P2 的值位于 4000 到 FFFF 的范围内时,P1-P2 的值应是两个字节上的 BER-TLV 标记。 值 4000 到 FFFF 是 RFU。
提供基元数据对象时,命令消息的数据字段应包含相应基元数据对象的值。
提供构造数据对象时,命令消息的数据字段应包含构造数据对象的值 (,即包含其标记、长度和值的数据对象) 。
有关此接口提供的所有方法的列表,请参阅 ISCardISO7816。
除了上面列出的 COM 错误代码之外,如果调用智能卡函数来完成请求,则此接口可能返回智能卡错误代码。 有关详细信息,请参阅 智能卡返回值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows XP [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
终止客户端支持 |
Windows XP |
终止服务器支持 |
Windows Server 2003 |
标头 |
|
类型库 |
|
DLL |
|
IID |
IID_ISCardISO7816定义为 53B6AA68-3F56-11D0-916B-00AA00C18068 |
另请参阅