The GetData method constructs an APDU command that retrieves either a single primitive data object or a set of data objects (contained in a constructed data object), depending on the type of file selected.
HRESULT GetData(
BYTE byP1,
BYTE byP2,
LONG lBytesToGet,
LPSCARDCMD *ppCmd
);
Value | Meaning |
---|---|
0000 - 003F | RFU |
0040 - 00FF | BER-TLV tag (1 byte) in P2 |
0100 - 01FF | Application data (proprietary coding) |
0200 - 02FF | SIMPLE-TLV tag in P2 |
0300 - 03FF | RFU |
0400 - 04FF | BER-TLV tag (2 bytes) in P1-P2 |
On return, it is filled with the APDU command constructed by this operation. If ppCmd was set to NULL, a smart card ISCardCmd object is internally created and returned via the ppCmd pointer.
The possible return values are the following:
Value | Meaning |
---|---|
S_OK | Operation completed successfully. |
E_INVALIDARG | Invalid parameter. |
E_POINTER | A bad pointer was passed in. |
E_OUTOFMEMORY | Out of memory. |
The encapsulated command can only be performed if the security status of the smart card satisfies the security attributes of the elementary file being read. Security conditions are dependent on the policy of the card, and may be manipulated through ExternalAuthenticate, InternalAuthenticate, ISCardAuth, etc.
To select a file, call SelectFile.
For a list of all the methods provided by the ISCardISO7816 interface, see ISCardISO7816.
In addition to the COM error codes listed above, this interface may return a smart card error code if a smart card function was called to complete the request. For information on smart card error codes, see Error Codes.
Windows NT: Use version 4.0 SP3 and later.
Windows: Use Windows 95 OSR2.1.
Windows CE: Unsupported.
Header: Declared in scardsrv.h.
Import Library: scardsrv.tlb.
ExternalAuthenticate, InternalAuthenticate, ISCardAuth, ISCardISO7816, PutData, SelectFile