2.2.2.20 Control_Call

Normally, communication is to the smart card via the reader. However, in some cases, the ability to communicate directly with the smart card reader is requested. The Control_Call structure provides the ability to talk to the reader.

 typedef struct _Control_Call {
   REDIR_SCARDHANDLE hCard;
   unsigned long dwControlCode;
   [range(0,66560)] unsigned long cbInBufferSize;
   [unique] [size_is(cbInBufferSize)] const byte *pvInBuffer;
   long fpvOutBufferIsNULL;
   unsigned long cbOutBufferSize;
 } Control_Call;

hCard: A handle, as specified in section 2.2.1.2.

dwControlCode: The control code for the operation. These values are specific to the hardware device. This protocol MUST NOT restrict or define any values for this control codes.

cbInBufferSize: The size in bytes of the pvInBuffer field.

pvInBuffer: A buffer that contains the data required to perform the operation. This field SHOULD be NULL if the dwControlCode field specifies an operation that does not require input data. Otherwise, this data is specific to the function being performed.

fpvOutBufferIsNULL: A Boolean value specifying whether the caller wants to retrieve the length of the data. MUST be set to TRUE (0x00000001) if the caller wants only to retrieve the length of the data; otherwise, it MUST be set to FALSE (0x00000000).

Name

Value

FALSE

0x00000000

TRUE

0x00000001

cbOutBufferSize: The maximum size of the buffer to be returned. This field MUST be ignored if fpvOutBufferIsNULL is set to TRUE (0x00000001).