ISCardISO7816::GetData 方法

[GetData 方法可用于"要求"部分指定的操作系统。 它不适用于 Windows Server 2003 Service Pack 1 (SP1) 及更高版本、Windows Vista、Windows Server 2008 以及操作系统的后续版本。 智能卡模块提供类似的功能。]

GetData 方法构造应用程序协议数据单元 ( APDU) 命令,该命令根据所选文件类型检索构造数据对象) 中包含的单个基元数据对象或一组数据对象 (。

语法

HRESULT GetData(
  [in]      BYTE       byP1,
  [in]      BYTE       byP2,
  [in]      LONG       lBytesToGet,
  [in, out] LPSCARDCMD *ppCmd
);

parameters

byP1 []

参数。

含义
0000 - 003F
RFU
0040 - 00FF
BER-TLV 标记 (P2) 1 个字节
0100 - 01FF
应用程序数据 (专有编码)
0200 - 02FF
P2 中的 SIMPLE-TLV 标记
0300 - 03FF
RFU
0400 - 04FF
BER-TLV 标记 (P1-P2) 2 个字节

byP2 []

参数。

含义
0000 - 003F
RFU
0040 - 00FF
BER-TLV 标记 (P2) 1 个字节
0100 - 01FF
应用程序数据 (专有编码)
0200 - 02FF
P2 中的 SIMPLE-TLV 标记
0300 - 03FF
RFU
0400 - 04FF
BER-TLV 标记 (P1-P2) 2 个字节

lBytesToGet []

响应中预期的字节数。

ppCmd [in、out]

输入时,指向 ISCardCmd 接口对象或 NULL 的指针。

返回时,会用此操作构造的 APDU 命令填充该参数。 如果 ppCmd 设置为 NULL,智能卡 ISCardCmd 对象在内部创建,然后使用 ppCmd 指针返回。

返回值

方法返回以下可能值之一。

返回代码 说明
S _ OK
操作已成功完成。
E _ INVALIDARG
参数无效。
E _ 指针
传入了错误的指针。
E _ OUTOFMEMORY
内存不足。

备注

只有在智能卡的安全状态满足所读取的基本文件的安全属性时,才能执行封装的命令。 安全条件取决于卡的策略,可以通过 ExternalAuthenticate、InternalAuthenticate、ISCardAuth等操作。

若要选择文件,请调用 SelectFile

有关此接口提供的所有方法的列表,请参阅 ISCardISO7816。

除了上面列出的 COM 错误代码,如果调用智能卡函数来完成请求,此接口可能返回智能卡错误代码。 有关详细信息,请参阅 智能卡返回值

要求

要求
最低受支持的客户端
Windows仅 [ XP 桌面应用]
最低受支持的服务器
Windows仅服务器 2003 [ 桌面应用]
客户端支持结束
Windows XP
服务器支持结束
Windows Server 2003
标头
Scardssp.h
类型库
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID _ ISCardISO7816 定义为 53B6AA68-3F56-11D0-916B-00AA00C18068

另请参阅

ExternalAuthenticate

InternalAuthenticate

ISCardAuth

ISCardISO7816

PutData

SelectFile