<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sdkwiki.wizarpos.com/index.php?action=history&amp;feed=atom&amp;title=Smart_card_interface.h</id>
	<title>Smart card interface.h - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sdkwiki.wizarpos.com/index.php?action=history&amp;feed=atom&amp;title=Smart_card_interface.h"/>
	<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Smart_card_interface.h&amp;action=history"/>
	<updated>2026-04-08T10:06:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Smart_card_interface.h&amp;diff=136&amp;oldid=prev</id>
		<title>Mahong at 03:43, 9 April 2018</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Smart_card_interface.h&amp;diff=136&amp;oldid=prev"/>
		<updated>2018-04-09T03:43:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:43, 9 April 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &amp;lt;syntaxhighlight lang=&quot;c&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #ifndef SMART_CARD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #ifndef SMART_CARD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define SMART_CARD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define SMART_CARD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l255&quot;&gt;Line 255:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 256:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #endif&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #endif&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #endif /* SMART_CARD_INTERFACE_H_ */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #endif /* SMART_CARD_INTERFACE_H_ */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &amp;lt;/syntaxhighlight&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key media_wiki-wk:diff::1.12:old-114:rev-136 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Smart_card_interface.h&amp;diff=114&amp;oldid=prev</id>
		<title>Mahong: Created page with &quot;  #ifndef SMART_CARD_INTERFACE_H_   #define SMART_CARD_INTERFACE_H_      #ifdef __cplusplus   extern &quot;C&quot;   {   #endif      #define SMART_CART_MAX_SLOT			8      #define SMART_C...&quot;</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Smart_card_interface.h&amp;diff=114&amp;oldid=prev"/>
		<updated>2018-04-08T09:17:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;  #ifndef SMART_CARD_INTERFACE_H_   #define SMART_CARD_INTERFACE_H_      #ifdef __cplusplus   extern &amp;quot;C&amp;quot;   {   #endif      #define SMART_CART_MAX_SLOT			8      #define SMART_C...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;  #ifndef SMART_CARD_INTERFACE_H_&lt;br /&gt;
  #define SMART_CARD_INTERFACE_H_&lt;br /&gt;
  &lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  extern &amp;quot;C&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
  #endif&lt;br /&gt;
  &lt;br /&gt;
  #define SMART_CART_MAX_SLOT			8&lt;br /&gt;
  &lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_FIDI		(1 &amp;lt;&amp;lt; 0)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_EGT		(1 &amp;lt;&amp;lt; 1)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_WI			(1 &amp;lt;&amp;lt; 2)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_WTX		(1 &amp;lt;&amp;lt; 3)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_EDC		(1 &amp;lt;&amp;lt; 4)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_PROTOCOL	(1 &amp;lt;&amp;lt; 5)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_POWER		(1 &amp;lt;&amp;lt; 6)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_CONV		(1 &amp;lt;&amp;lt; 7)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_IFSC		(1 &amp;lt;&amp;lt; 8)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_CWT		(1 &amp;lt;&amp;lt; 9)&lt;br /&gt;
  #define SMART_CARD_SLOT_INFO_BWT		(1 &amp;lt;&amp;lt; 10)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #define HAL_SCS_PROTOCOL_UNDEFINED	0x0000	/**&amp;lt; protocol not set */&lt;br /&gt;
  #define HAL_SCS_PROTOCOL_T0			0x0001	/**&amp;lt; T=0 active protocol. */&lt;br /&gt;
  #define HAL_SCS_PROTOCOL_T1			0x0002	/**&amp;lt; T=1 active protocol. */&lt;br /&gt;
  #define HAL_SCS_PROTOCOL_RAW		0x0004	/**&amp;lt; Raw active protocol. */&lt;br /&gt;
  #define HAL_SCS_PROTOCOL_T15		0x0008	/**&amp;lt; T=15 protocol. */&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  typedef struct smart_card_slot_info&lt;br /&gt;
  {&lt;br /&gt;
      /** \showinitializer Speed communication (parameter TA1 of ISO 7816-3) */&lt;br /&gt;
      unsigned char FIDI;&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer Extra Guard Time (parameter TC1 or N of ISO 7816-3) */&lt;br /&gt;
      unsigned char EGT;&lt;br /&gt;
  &lt;br /&gt;
      /**  \showinitializer&lt;br /&gt;
       * If protocol T=0 is selected, the parameter indicates the Waiting&lt;br /&gt;
       * Integer (parameter TC2 of ISO 7816-3 - the default value is 10)&lt;br /&gt;
       * If the protocol T=1 is selected, the parameter indicates the&lt;br /&gt;
       * Block and Character Waiting Time Integer (parameter TB3 of ISO 7816-3)&lt;br /&gt;
       */&lt;br /&gt;
      unsigned char WI;&lt;br /&gt;
  &lt;br /&gt;
       /** \showinitializer If the protocol T=1 is selected, the parameter indicates the&lt;br /&gt;
        * Waiting Time Extention (the default value is 1). */&lt;br /&gt;
      unsigned char WTX;&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer If the protocol T=1 is selected, the parameter indicates the computing&lt;br /&gt;
       * mode for EDC : HAL_SCS_EDC_LRC or HAL_SCS_EDC_CRC (The default value&lt;br /&gt;
       * is an LRC) */&lt;br /&gt;
      unsigned char EDC;&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer The parameter indicates the selected protocol :&lt;br /&gt;
       *  HAL_SCS_PROTOCOL_T0&lt;br /&gt;
       *  HAL_SCS_PROTOCOL_T1 */&lt;br /&gt;
      unsigned char protocol;&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer The power supply value :&lt;br /&gt;
       *  HAL_SCS_POWER_1_8V&lt;br /&gt;
       *  HAL_SCS_POWER_3V&lt;br /&gt;
       *  HAL_SCS_POWER_5V&lt;br /&gt;
       */&lt;br /&gt;
      unsigned char power;&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer Convention used to transfer byte :&lt;br /&gt;
       *  HAL_SCS_CONV_DIRECT&lt;br /&gt;
       *  HAL_SCS_CONV_INVERSE */&lt;br /&gt;
      unsigned char conv;&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer If the protocol T=1 is selected, the parameter indicates the Information&lt;br /&gt;
       * Field Size for the Card (parameter TA3 of ISO 7816-3). */&lt;br /&gt;
      unsigned char IFSC;&lt;br /&gt;
      unsigned char reserved[3];&lt;br /&gt;
  &lt;br /&gt;
      /** \showinitializer Possibility to set Character Waiting Time */&lt;br /&gt;
      unsigned int cwt;&lt;br /&gt;
      /** \showinitializer Possibility to set Block Waiting Time */&lt;br /&gt;
      unsigned int bwt;&lt;br /&gt;
      /*&lt;br /&gt;
       * OR of these items:&lt;br /&gt;
       * 		SMART_CARD_SLOT_INFO_FIDI		(1 &amp;lt;&amp;lt; 0)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_EGT		(1 &amp;lt;&amp;lt; 1)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_WI			(1 &amp;lt;&amp;lt; 2)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_WTX		(1 &amp;lt;&amp;lt; 3)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_EDC		(1 &amp;lt;&amp;lt; 4)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_PROTOCOL	(1 &amp;lt;&amp;lt; 5)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_POWER		(1 &amp;lt;&amp;lt; 6)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_CONV		(1 &amp;lt;&amp;lt; 7)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_IFSC		(1 &amp;lt;&amp;lt; 8)&lt;br /&gt;
  	 * 		SMART_CARD_SLOT_INFO_CWT		(1 &amp;lt;&amp;lt; 9)&lt;br /&gt;
  	 *		SMART_CARD_SLOT_INFO_BWT		(1 &amp;lt;&amp;lt; 10)&lt;br /&gt;
       *&lt;br /&gt;
       */&lt;br /&gt;
      unsigned int nSlotInfoItem;&lt;br /&gt;
  }SMART_CARD_SLOT_INFO;&lt;br /&gt;
  &lt;br /&gt;
  #define SMART_CARD_EVENT_INSERT_CARD		0&lt;br /&gt;
  #define SMART_CARD_EVENT_REMOVE_CARD		1&lt;br /&gt;
  #define SMART_CARD_EVENT_POWER_ON			2&lt;br /&gt;
  #define SMART_CARD_EVENT_POWER_OFF			3&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  typedef void (*SMART_CARD_NOTIFIER)(void* pUserData, int nCardIndex, int nEvent);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function initialize the smart card reader&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error&lt;br /&gt;
   * 					  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_init)();&lt;br /&gt;
  /*&lt;br /&gt;
   * The function clean up the resource allocated by card reader.&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_terminate)();&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function query the max the slot in this smart card reader&lt;br /&gt;
   *&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error&lt;br /&gt;
   * 					  == 0 : not defined&lt;br /&gt;
   * 					  &amp;gt; 0 : number of slot&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_query_max_number)();&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function query whether the smart card is not existent&lt;br /&gt;
   * Attention : not every slot can support this function&lt;br /&gt;
   * @param[in]	 : Slot index, from 0 to MAX_SUPPORT_SLOT - 1&lt;br /&gt;
   * @return value : &amp;lt; 0 : error&lt;br /&gt;
   * 				   = 0 : not existent&lt;br /&gt;
   * 				   &amp;gt; 0 : be existent&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_query_presence)(int nSlotIndex);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function open the specified card&lt;br /&gt;
   * @param[in]		: Slot index, from 0 to MAX_SUPPORT_SLOT - 1&lt;br /&gt;
   * @param[in]		: SMART_CARD_NOTIFIER pNotify : call back of smart card reader.&lt;br /&gt;
   * return value 	: &amp;lt; 0 : error&lt;br /&gt;
   * 					  &amp;gt;= 0 : success, return value is a handle.&lt;br /&gt;
   * 					  This handle will be employed bye other API as an input parameter&lt;br /&gt;
   *&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_open)(int nSlotIndex, SMART_CARD_NOTIFIER pNotify, void* pUserData);&lt;br /&gt;
  /*&lt;br /&gt;
   * The function initialize the smart card reader&lt;br /&gt;
   * @param[in]		: int handle : return from method of open&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error&lt;br /&gt;
   * 					  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_close)(int handle);&lt;br /&gt;
  &lt;br /&gt;
  /**&lt;br /&gt;
   *nBuadrate  9600 or 38400&lt;br /&gt;
   *nVoltage	1, 2 ,3 means 1.8v 3v 5v&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_set_card_info)(int nHandle,int nBuadrate , int nVoltage);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function power on the smart card&lt;br /&gt;
   * @param[in]		: int Handle : return from method of open&lt;br /&gt;
   * @param[out]		: unsigned char* pATR : ATR&lt;br /&gt;
   * @param[in][out]	: unsigned int* pATRBufferLength :	[in], ATR buffer length&lt;br /&gt;
   * 														[out], length of ATR&lt;br /&gt;
   * @param[out]		: SMART_CARD_SLOT_INFO pCardInfo : card information&lt;br /&gt;
   * @return value	: &amp;lt; 0 , error&lt;br /&gt;
   * 						&amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_power_on)(int Handle, unsigned char* pATR, unsigned int* pATRBufferLength, SMART_CARD_SLOT_INFO* pSlotInfo);&lt;br /&gt;
  /*&lt;br /&gt;
   * The function power off the smart card&lt;br /&gt;
   * @param[in]		: int Handle : return from method of open&lt;br /&gt;
   * @return value	: &amp;lt; 0, error&lt;br /&gt;
   * 					  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_power_off)(int Handle);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function set the slot control information&lt;br /&gt;
   * @param[in]		: int Handle : return from method of open&lt;br /&gt;
   * @param[in]		: SMART_CARD_SLOT_INFO* pSlotInfo&lt;br /&gt;
   * @return value	: &amp;lt; 0, error&lt;br /&gt;
   * 					  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_set_slot_info)(int Handle, SMART_CARD_SLOT_INFO* pSlotInfo);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * The function sends a command Application Protocol Data Unit(APDU) to a card&lt;br /&gt;
   * and retrieve the response APDU, plus the status words SW1 and SW2&lt;br /&gt;
   *&lt;br /&gt;
   * @param[in]		: int Handle : return from method of open&lt;br /&gt;
   * @param[in]		: unsigned char* pAPDU : command of APDU&lt;br /&gt;
   * @param[in]		: unsigned int nAPDULength : length of command of APDU&lt;br /&gt;
   * @param[out]		: unsigned char* pResponse : response of command of APDU&lt;br /&gt;
   * @param[in][out]	: unsigned int* pResponseLength : [in], buffer length of response&lt;br /&gt;
   * 													  [out], length of response&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error&lt;br /&gt;
   * 					  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_transmit)(int Handle, unsigned char* pAPDU, unsigned int nAPDULength, unsigned char* pResponse, unsigned int *pResponseLength);&lt;br /&gt;
  /*&lt;br /&gt;
   * This function is responsible for reading data from memory card&lt;br /&gt;
   * @param[in]		: int Handle, return from method of open&lt;br /&gt;
   * @param[in]		: unsigned int nAreaType, area type :&lt;br /&gt;
   * 													0 : main memory,&lt;br /&gt;
   * 													1 : protected memory&lt;br /&gt;
   * 													2 : security memory&lt;br /&gt;
   * @param[in][out]	: unsigned char* pDataBuffer : data buffer&lt;br /&gt;
   * @param[in]		: unsigned int nDataLength : data length of expecting reading&lt;br /&gt;
   * @param[in]		: unsigned char cStartAddress : starting address&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error code&lt;br /&gt;
   * 					  &amp;gt;= 0 : data length&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_mc_read)(int Handle, unsigned int nAreaType, unsigned char* pDataBuffer, unsigned int nDataLength, unsigned char cStartAddress);&lt;br /&gt;
  typedef int (*smart_card_mc_read_E)(int Handle, unsigned int nAreaType, unsigned char* pDataBuffer, unsigned int nDataLength, unsigned int cStartAddress);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * This function is responsible for writing data to memory card&lt;br /&gt;
   * @param[in]		: int Handle, return from method of open&lt;br /&gt;
   * @param[in]		: unsigned int nAreaType, area type :&lt;br /&gt;
   * 													0 : main memory,&lt;br /&gt;
   * 													1 : protected memory&lt;br /&gt;
   * 													2 : security memory&lt;br /&gt;
   * @param[in]		: unsigned char* pData : data buffer&lt;br /&gt;
   * @param[in]		: unsigned int nDataLength : data length of expecting reading&lt;br /&gt;
   * @param[in]		: unsigned char cStartAddress : starting address&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error code&lt;br /&gt;
   * 					  &amp;gt;= 0 : data length&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_mc_write)(int Handle, unsigned int nAreaType, unsigned char* pData, unsigned int nDataLength, unsigned char cStartAddress);&lt;br /&gt;
  typedef int (*smart_card_mc_write_E)(int Handle, unsigned int nAreaType, unsigned char* pData, unsigned int nDataLength, unsigned int cStartAddress);&lt;br /&gt;
  /*&lt;br /&gt;
   * Verification of data&lt;br /&gt;
   * @param[in]		: int Handle, return from method of open&lt;br /&gt;
   * @param[in]		: unsigned char* pData : data buffer&lt;br /&gt;
   * @param[in]		: unsigned int nDataLength : data length&lt;br /&gt;
   * @return value	: &amp;lt; 0 : error code&lt;br /&gt;
   * 					  = 0 : failed in verifying data&lt;br /&gt;
   * 					  &amp;gt; 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*smart_card_mc_verify_data)(int Handle, unsigned char* pData, unsigned int nDataLength);&lt;br /&gt;
  &lt;br /&gt;
  typedef int (*smart_card_mc_verify_data_E)(int Handle, unsigned char* pData, unsigned int nDataLength, unsigned int nAddress);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  typedef int (*smart_card_touch)(int Handle);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  }&lt;br /&gt;
  #endif&lt;br /&gt;
  #endif /* SMART_CARD_INTERFACE_H_ */&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
</feed>