ISCardISO7816::AppendRecord

The AppendRecord method constructs an APDU command that either appends a record to the end of a linear-structured elementary file (EF) or writes record number 1 in an cyclic-structured elementary file.

HRESULT AppendRecord(
  BYTE byRefCtrl,  
  LPBYTEBUFFER pData,
  LPSCARDCMD *ppCmd
);
 

Parameters

byRefCtrl [in, defaultvalue(NULL_BYTE)]
Identifies the elementary file to be appended:
Meaning 8 7 6 5 4 3 2 1
Current EF 0 0 0 0 0 0 0 0
Short EF ID x x x x x 0 0 0
Reserved x x x x x x x x

pData [in]
Pointer to the data to be appended to the file:
Tn (1 byte) Ln (1 or 3 bytes) data (Ln bytes)

ppCmd [in, out]
On input, a pointer to an ISCardCmd interface object or NULL.

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.

Return Values

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.

Remarks

The encapsulated command can only be performed if the security status of the smart card satisfies the security attributes of the elementary file read.

If another elementary file is selected at the time of issuing this command, it may be processed without identification of the currently selected file.

Elementary files without a record structure cannot be read. The encapsulated command aborts if applied to an elementary file without a record structure.

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.

QuickInfo

  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.

See Also

ISCardISO7816, ReadRecord, UpdateRecord, WriteRecord