Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1d49b8f9ae104bfd1869bc35e6bbf50d > files > 185

pcsc-lite-doc-1.7.2-1.fc15.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>pcsc-lite: reader.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">pcsc-lite&#160;<span id="projectnumber">1.7.2</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_7a4553ee0c3b13d0e595a5d1659110a6.html">src</a>      </li>
      <li class="navelem"><a class="el" href="dir_8a9b44811c0d1b881450d901a25922be.html">PCSC</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>reader.h</h1>  </div>
</div>
<div class="contents">
<a href="reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * MUSCLE SmartCard Development ( http://www.linuxnet.com )</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 1999-2005</span>
<a name="l00005"></a>00005 <span class="comment"> *  David Corcoran &lt;corcoran@linuxnet.com&gt;</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 2005-2009</span>
<a name="l00007"></a>00007 <span class="comment"> *  Ludovic Rousseau &lt;ludovic.rousseau@free.fr&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * $Id: reader.h 5255 2010-09-14 09:38:25Z rousseau $</span>
<a name="l00010"></a>00010 <span class="comment"> */</span>
<a name="l00011"></a>00011 
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef __reader_h__</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __reader_h__</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="comment">/*</span>
<a name="l00021"></a>00021 <span class="comment"> * Tags for requesting card and reader attributes</span>
<a name="l00022"></a>00022 <span class="comment"> */</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#define SCARD_ATTR_VALUE(Class, Tag) ((((ULONG)(Class)) &lt;&lt; 16) | ((ULONG)(Tag)))</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a><a class="code" href="reader_8h.html#ac409d77029bd4c5d53a3653a3c9bced1">00026</a> <span class="preprocessor">#define SCARD_CLASS_VENDOR_INFO     1   </span>
<a name="l00027"></a><a class="code" href="reader_8h.html#afa4010182e2b73a4ef25351eb7d8730a">00027</a> <span class="preprocessor">#define SCARD_CLASS_COMMUNICATIONS  2   </span>
<a name="l00028"></a><a class="code" href="reader_8h.html#a064f818b19ec974371097ab385623b71">00028</a> <span class="preprocessor">#define SCARD_CLASS_PROTOCOL        3   </span>
<a name="l00029"></a><a class="code" href="reader_8h.html#a461e952ec774e5d72d1a3eb871bbb847">00029</a> <span class="preprocessor">#define SCARD_CLASS_POWER_MGMT      4   </span>
<a name="l00030"></a><a class="code" href="reader_8h.html#a4165b491cc3d530c3e59933d0ebd4943">00030</a> <span class="preprocessor">#define SCARD_CLASS_SECURITY        5   </span>
<a name="l00031"></a><a class="code" href="reader_8h.html#a51e081f8f62026f12e3df5ccc720efcb">00031</a> <span class="preprocessor">#define SCARD_CLASS_MECHANICAL      6   </span>
<a name="l00032"></a><a class="code" href="reader_8h.html#aab5654dd9c299bf141b7e97d8d2593c7">00032</a> <span class="preprocessor">#define SCARD_CLASS_VENDOR_DEFINED  7   </span>
<a name="l00033"></a><a class="code" href="reader_8h.html#abf10cf4bc4b1e9a02dae61b10df2c353">00033</a> <span class="preprocessor">#define SCARD_CLASS_IFD_PROTOCOL    8   </span>
<a name="l00034"></a><a class="code" href="reader_8h.html#a9b9fc02612f084a904eb1236c1f1583a">00034</a> <span class="preprocessor">#define SCARD_CLASS_ICC_STATE       9   </span>
<a name="l00035"></a><a class="code" href="reader_8h.html#a4212b8e77d8e35f0cef53b034afbd5ad">00035</a> <span class="preprocessor">#define SCARD_CLASS_SYSTEM     0x7fff   </span>
<a name="l00037"></a><a class="code" href="reader_8h.html#a8c0b0539cf006d7bfef49db7136cda95">00037</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_NAME SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100) </span>
<a name="l00038"></a><a class="code" href="reader_8h.html#a5667d6bcd2fb4b0aa5ea43f85a579518">00038</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_IFD_TYPE SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101) </span>
<a name="l00039"></a><a class="code" href="reader_8h.html#a21105eef90f69895754548688e4b0721">00039</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_IFD_VERSION SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102) </span>
<a name="l00040"></a><a class="code" href="reader_8h.html#ae1143cec3f4ee0f37dee6cdaf8942e8b">00040</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_IFD_SERIAL_NO SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103) </span>
<a name="l00041"></a><a class="code" href="reader_8h.html#a8c38e24b650a967fbd052bb2a376c492">00041</a> <span class="preprocessor">#define SCARD_ATTR_CHANNEL_ID SCARD_ATTR_VALUE(SCARD_CLASS_COMMUNICATIONS, 0x0110) </span>
<a name="l00042"></a><a class="code" href="reader_8h.html#a2e87e6925548b9fcca3fa0026b82500d">00042</a> <span class="preprocessor">#define SCARD_ATTR_ASYNC_PROTOCOL_TYPES SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0120) </span>
<a name="l00043"></a><a class="code" href="reader_8h.html#afb122c686777ecf51f106bcc88836270">00043</a> <span class="preprocessor">#define SCARD_ATTR_DEFAULT_CLK SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121) </span>
<a name="l00044"></a><a class="code" href="reader_8h.html#a0a30cd55c56ceeb3f97d8c0c91e68d77">00044</a> <span class="preprocessor">#define SCARD_ATTR_MAX_CLK SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122) </span>
<a name="l00045"></a><a class="code" href="reader_8h.html#aa4e83e4f0024961638da8c8608c1c50e">00045</a> <span class="preprocessor">#define SCARD_ATTR_DEFAULT_DATA_RATE SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123) </span>
<a name="l00046"></a><a class="code" href="reader_8h.html#a67cd46e2a022ae72ce6dde4b04c950ff">00046</a> <span class="preprocessor">#define SCARD_ATTR_MAX_DATA_RATE SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124) </span>
<a name="l00047"></a><a class="code" href="reader_8h.html#a338aa843f02a567ea406b0c5bd488620">00047</a> <span class="preprocessor">#define SCARD_ATTR_MAX_IFSD SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125) </span>
<a name="l00048"></a><a class="code" href="reader_8h.html#a2be4573e3c86834b1b35abf66d0053ad">00048</a> <span class="preprocessor">#define SCARD_ATTR_SYNC_PROTOCOL_TYPES SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0126) </span>
<a name="l00049"></a><a class="code" href="reader_8h.html#a33c927bbe78a8eab44869c04783ea0d2">00049</a> <span class="preprocessor">#define SCARD_ATTR_POWER_MGMT_SUPPORT SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131) </span>
<a name="l00050"></a><a class="code" href="reader_8h.html#a60bf2dbb950d448099314aa86c14b2aa">00050</a> <span class="preprocessor">#define SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0140) </span>
<a name="l00051"></a><a class="code" href="reader_8h.html#a86eb3bba6a8a463aa0eac4ada7704785">00051</a> <span class="preprocessor">#define SCARD_ATTR_USER_AUTH_INPUT_DEVICE SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0142) </span>
<a name="l00052"></a><a class="code" href="reader_8h.html#a1ae75dff994bb9cede8b48f3c122b048">00052</a> <span class="preprocessor">#define SCARD_ATTR_CHARACTERISTICS SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150) </span>
<a name="l00054"></a><a class="code" href="reader_8h.html#a76c1d362b156a01b284e8169eaabd4fd">00054</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_PROTOCOL_TYPE SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0201) </span>
<a name="l00055"></a><a class="code" href="reader_8h.html#a447488ba15bce3e75f62f2c65b052030">00055</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_CLK SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202) </span>
<a name="l00056"></a><a class="code" href="reader_8h.html#aab6a1f84654ddb09d47feab98d2be554">00056</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_F SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203) </span>
<a name="l00057"></a><a class="code" href="reader_8h.html#a7940c3ad5296495fad9aa5e04f58c83b">00057</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_D SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204) </span>
<a name="l00058"></a><a class="code" href="reader_8h.html#aedeec28fe350408eccf5b8c98328aaf8">00058</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_N SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205) </span>
<a name="l00059"></a><a class="code" href="reader_8h.html#ad50deb32988b5a8168d7a63ebcf463a6">00059</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_W SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206) </span>
<a name="l00060"></a><a class="code" href="reader_8h.html#afc64b5592340e1cce3479b54dd7560e9">00060</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_IFSC SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207) </span>
<a name="l00061"></a><a class="code" href="reader_8h.html#a1ec6dd8c482a91b0d0bd9e52e5a383f8">00061</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_IFSD SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208) </span>
<a name="l00062"></a><a class="code" href="reader_8h.html#a0684ca7b1180d2f3ed44297005c7f9d4">00062</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_BWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209) </span>
<a name="l00063"></a><a class="code" href="reader_8h.html#af83058f4dcd2051b74c2e3fc6e02781c">00063</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_CWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a) </span>
<a name="l00064"></a><a class="code" href="reader_8h.html#ae6d0cc32ff645d19e9180244c4ef3c81">00064</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_EBC_ENCODING SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b) </span>
<a name="l00065"></a><a class="code" href="reader_8h.html#a5fcd5c979018130c164a64c728f0716d">00065</a> <span class="preprocessor">#define SCARD_ATTR_EXTENDED_BWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020c) </span>
<a name="l00067"></a><a class="code" href="reader_8h.html#ae9f8bb5f689263c35c0888bb37f2ca69">00067</a> <span class="preprocessor">#define SCARD_ATTR_ICC_PRESENCE SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0300) </span>
<a name="l00068"></a><a class="code" href="reader_8h.html#a222400e1955f63c956437e786197dd27">00068</a> <span class="preprocessor">#define SCARD_ATTR_ICC_INTERFACE_STATUS SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301) </span>
<a name="l00069"></a><a class="code" href="reader_8h.html#a9c6ee3dccc23e924907e3dc2e29a50f6">00069</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_IO_STATE SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0302) </span>
<a name="l00070"></a><a class="code" href="reader_8h.html#ae450bada1fa917057610dd0446983784">00070</a> <span class="preprocessor">#define SCARD_ATTR_ATR_STRING SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303) </span>
<a name="l00071"></a><a class="code" href="reader_8h.html#a2563696a9f7abd40684b46db714bfc8b">00071</a> <span class="preprocessor">#define SCARD_ATTR_ICC_TYPE_PER_ATR SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0304) </span>
<a name="l00073"></a><a class="code" href="reader_8h.html#a55df7896fb65a2a942780d383d815071">00073</a> <span class="preprocessor">#define SCARD_ATTR_ESC_RESET SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA000) </span>
<a name="l00074"></a><a class="code" href="reader_8h.html#a69d8dd84f5f433efbfa6e0fce2a95528">00074</a> <span class="preprocessor">#define SCARD_ATTR_ESC_CANCEL SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA003) </span>
<a name="l00075"></a><a class="code" href="reader_8h.html#a1a1d31628ec9f49f79d2dda6651658d6">00075</a> <span class="preprocessor">#define SCARD_ATTR_ESC_AUTHREQUEST SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA005) </span>
<a name="l00076"></a><a class="code" href="reader_8h.html#a42ea634deb1ec51e10722b661aa73d01">00076</a> <span class="preprocessor">#define SCARD_ATTR_MAXINPUT SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA007) </span>
<a name="l00078"></a><a class="code" href="reader_8h.html#a529910b9e28448ee881a55125fc9916f">00078</a> <span class="preprocessor">#define SCARD_ATTR_DEVICE_UNIT SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001) </span>
<a name="l00079"></a><a class="code" href="reader_8h.html#a9ab15f1b788a302737415a13e1546eae">00079</a> <span class="preprocessor">#define SCARD_ATTR_DEVICE_IN_USE SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002) </span>
<a name="l00080"></a>00080 <span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_A SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0003)</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME_A SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0004)</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_W SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0005)</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME_W SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0006)</span>
<a name="l00084"></a><a class="code" href="reader_8h.html#a62d09db2a45663ea726239aeafaac747">00084</a> <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_SUPRESS_T1_IFS_REQUEST SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0007) </span>
<a name="l00086"></a>00086 <span class="preprocessor">#ifdef UNICODE</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME SCARD_ATTR_DEVICE_FRIENDLY_NAME_W </span>
<a name="l00088"></a>00088 <span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME SCARD_ATTR_DEVICE_SYSTEM_NAME_W </span>
<a name="l00089"></a>00089 <span class="preprocessor">#else</span>
<a name="l00090"></a><a class="code" href="reader_8h.html#a362e5f163fda06e0aa6d2964d2a4bbae">00090</a> <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME SCARD_ATTR_DEVICE_FRIENDLY_NAME_A </span>
<a name="l00091"></a><a class="code" href="reader_8h.html#abd1302e7451b1f101898b9bf7d079a6c">00091</a> <span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME SCARD_ATTR_DEVICE_SYSTEM_NAME_A </span>
<a name="l00092"></a>00092 <span class="preprocessor">#endif</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span>
<a name="l00097"></a><a class="code" href="reader_8h.html#a77839183c3ae7b0cea39fbaff9f9aabb">00097</a> <span class="preprocessor">#define SCARD_CTL_CODE(code) (0x42000000 + (code))</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span>
<a name="l00102"></a><a class="code" href="reader_8h.html#aee38049affbddd17985ccb9c7fddbd59">00102</a> <span class="preprocessor">#define CM_IOCTL_GET_FEATURE_REQUEST SCARD_CTL_CODE(3400)</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span>
<a name="l00104"></a>00104 <span class="preprocessor">#define FEATURE_VERIFY_PIN_START         0x01</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_VERIFY_PIN_FINISH        0x02</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MODIFY_PIN_START         0x03</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MODIFY_PIN_FINISH        0x04</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_GET_KEY_PRESSED          0x05</span>
<a name="l00109"></a><a class="code" href="reader_8h.html#a22729dc39cb7e44fb9f9bc6312cdd470">00109</a> <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_VERIFY_PIN_DIRECT        0x06 </span>
<a name="l00110"></a><a class="code" href="reader_8h.html#aad76cf0fd82ebd046f7d17c1f7cccb98">00110</a> <span class="preprocessor">#define FEATURE_MODIFY_PIN_DIRECT        0x07 </span>
<a name="l00111"></a><a class="code" href="reader_8h.html#adf0d528dce86a5bc7b0c842a38844b75">00111</a> <span class="preprocessor">#define FEATURE_MCT_READERDIRECT         0x08 </span>
<a name="l00112"></a>00112 <span class="preprocessor">#define FEATURE_MCT_READER_DIRECT        0x08</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MCT_UNIVERSAL            0x09</span>
<a name="l00114"></a><a class="code" href="reader_8h.html#a63ca99c5a5d14f07451463b5551918b5">00114</a> <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_IFD_PIN_PROPERTIES       0x0A </span>
<a name="l00115"></a>00115 <span class="preprocessor">#define FEATURE_ABORT                    0x0B</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_SET_SPE_MESSAGE          0x0C</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_VERIFY_PIN_DIRECT_APP_ID 0x0D</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MODIFY_PIN_DIRECT_APP_ID 0x0E</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_WRITE_DISPLAY            0x0F</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_GET_KEY                  0x10</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_IFD_DISPLAY_PROPERTIES   0x11</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_GET_TLV_PROPERTIES       0x12</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_CCID_ESC_COMMAND         0x13</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span>
<a name="l00125"></a>00125 <span class="comment">/* structures used (but not defined) in PC/SC Part 10:</span>
<a name="l00126"></a>00126 <span class="comment"> * &quot;IFDs with Secure Pin Entry Capabilities&quot; */</span>
<a name="l00127"></a>00127 
<a name="l00128"></a>00128 <span class="preprocessor">#include &lt;inttypes.h&gt;</span>
<a name="l00129"></a>00129 
<a name="l00130"></a>00130 <span class="comment">/* Set structure elements aligment on bytes</span>
<a name="l00131"></a>00131 <span class="comment"> * http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html */</span>
<a name="l00132"></a>00132 <span class="preprocessor">#if defined(__APPLE__) | defined(sun)</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(1)</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(push, 1)</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span>
<a name="l00139"></a><a class="code" href="structPCSC__TLV__STRUCTURE.html">00139</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00140"></a>00140 {
<a name="l00141"></a>00141     uint8_t tag;
<a name="l00142"></a>00142     uint8_t length;
<a name="l00143"></a><a class="code" href="structPCSC__TLV__STRUCTURE.html#ae7f66047e6e39ba2bb6af8b95f00d1dd">00143</a>     uint32_t <a class="code" href="structPCSC__TLV__STRUCTURE.html#ae7f66047e6e39ba2bb6af8b95f00d1dd" title="This value is always in BIG ENDIAN format as documented in PCSC v2 part 10 ch 2.2 page 2...">value</a>; 
<a name="l00144"></a>00144 } <a class="code" href="structPCSC__TLV__STRUCTURE.html" title="the structure must be 6-bytes long">PCSC_TLV_STRUCTURE</a>;
<a name="l00145"></a>00145 
<a name="l00148"></a><a class="code" href="reader_8h.html#a3312dc4b9734876727050a2c5585b677">00148</a> <span class="preprocessor">#define HOST_TO_CCID_16(x) (x)</span>
<a name="l00149"></a>00149 <span class="preprocessor"></span><span class="preprocessor">#define HOST_TO_CCID_32(x) (x)</span>
<a name="l00150"></a>00150 <span class="preprocessor"></span>
<a name="l00152"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html">00152</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00153"></a>00153 {
<a name="l00154"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a4a2874da29f1957ebd6f0b190b38b438">00154</a>     uint8_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#a4a2874da29f1957ebd6f0b190b38b438" title="timeout is seconds (00 means use default timeout)">bTimerOut</a>;  
<a name="l00155"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#abad00652e068ef7bf2c18f96f6d1fbbb">00155</a>     uint8_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#abad00652e068ef7bf2c18f96f6d1fbbb" title="timeout in seconds after first key stroke">bTimerOut2</a>; 
<a name="l00156"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a44dbe2a2044c8f9eef0d7a80259f57d5">00156</a>     uint8_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#a44dbe2a2044c8f9eef0d7a80259f57d5" title="formatting options">bmFormatString</a>; 
<a name="l00157"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a661f21061bb895e1c536ac9ae22746cd">00157</a>     uint8_t bmPINBlockString; 
<a name="l00160"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a08e572ab7bc0aa5445e5108015c79cec">00160</a>     uint8_t bmPINLengthFormat; 
<a name="l00164"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a583441d53abd0f8a9cae6c17375da757">00164</a>     uint16_t wPINMaxExtraDigit; 
<a name="l00166"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#af7fc7fede7513fa232908bc29515dd8f">00166</a>     uint8_t bEntryValidationCondition; 
<a name="l00168"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#aa982eed64ef3c29ce03a681ac6598458">00168</a>     uint8_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#aa982eed64ef3c29ce03a681ac6598458" title="Number of messages to display for PIN verification.">bNumberMessage</a>; 
<a name="l00169"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a6f97f8ee904173f07127bf7fbc67b465">00169</a>     uint16_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#a6f97f8ee904173f07127bf7fbc67b465" title="Language for messages.">wLangId</a>; 
<a name="l00170"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a2f6bf34a9c77f54d54b6ea12418b471c">00170</a>     uint8_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#a2f6bf34a9c77f54d54b6ea12418b471c" title="Message index (should be 00)">bMsgIndex</a>; 
<a name="l00171"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#ab375ffb2d2c59ec629532ab19b365473">00171</a>     uint8_t bTeoPrologue[3]; 
<a name="l00172"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#ab72df82de81107fe9ca3ce798ec88c22">00172</a>     uint32_t <a class="code" href="structPIN__VERIFY__STRUCTURE.html#ab72df82de81107fe9ca3ce798ec88c22" title="length of Data to be sent to the ICC">ulDataLength</a>; 
<a name="l00173"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a23fcd24347c2e71f162fdae11117aebf">00173</a>     uint8_t abData[1]; 
<a name="l00174"></a>00174 } <a class="code" href="structPIN__VERIFY__STRUCTURE.html" title="structure used with FEATURE_VERIFY_PIN_DIRECT">PIN_VERIFY_STRUCTURE</a>;
<a name="l00175"></a>00175 
<a name="l00177"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html">00177</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00178"></a>00178 {
<a name="l00179"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a4a2874da29f1957ebd6f0b190b38b438">00179</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#a4a2874da29f1957ebd6f0b190b38b438" title="timeout is seconds (00 means use default timeout)">bTimerOut</a>;  
<a name="l00180"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#abad00652e068ef7bf2c18f96f6d1fbbb">00180</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#abad00652e068ef7bf2c18f96f6d1fbbb" title="timeout in seconds after first key stroke">bTimerOut2</a>; 
<a name="l00181"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a44dbe2a2044c8f9eef0d7a80259f57d5">00181</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#a44dbe2a2044c8f9eef0d7a80259f57d5" title="formatting options">bmFormatString</a>; 
<a name="l00182"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a661f21061bb895e1c536ac9ae22746cd">00182</a>     uint8_t bmPINBlockString; 
<a name="l00185"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a08e572ab7bc0aa5445e5108015c79cec">00185</a>     uint8_t bmPINLengthFormat; 
<a name="l00189"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a1e2badffbcf88cc679da33fdd5aceef8">00189</a>     uint8_t bInsertionOffsetOld; 
<a name="l00191"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#ad52dcba72627432663692ca596f7171d">00191</a>     uint8_t bInsertionOffsetNew; 
<a name="l00193"></a>00193     uint16_t wPINMaxExtraDigit;
<a name="l00196"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a33dea283bb8816efbc9e41c8c99f71ce">00196</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#a33dea283bb8816efbc9e41c8c99f71ce" title="Flags governing need for confirmation of new PIN.">bConfirmPIN</a>; 
<a name="l00197"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#af7fc7fede7513fa232908bc29515dd8f">00197</a>     uint8_t bEntryValidationCondition; 
<a name="l00199"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#aa982eed64ef3c29ce03a681ac6598458">00199</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#aa982eed64ef3c29ce03a681ac6598458" title="Number of messages to display for PIN verification.">bNumberMessage</a>; 
<a name="l00200"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a6f97f8ee904173f07127bf7fbc67b465">00200</a>     uint16_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#a6f97f8ee904173f07127bf7fbc67b465" title="Language for messages.">wLangId</a>; 
<a name="l00201"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#affb0107742a198a8931d7a51628fb54d">00201</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#affb0107742a198a8931d7a51628fb54d" title="index of 1st prompting message">bMsgIndex1</a>; 
<a name="l00202"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#af9ff7efc29c8d96ddd7a3d0fbb1c89c6">00202</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#af9ff7efc29c8d96ddd7a3d0fbb1c89c6" title="index of 2d prompting message">bMsgIndex2</a>; 
<a name="l00203"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#aabd8b2169723bd6464ae2d45a1e555db">00203</a>     uint8_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#aabd8b2169723bd6464ae2d45a1e555db" title="index of 3d prompting message">bMsgIndex3</a>; 
<a name="l00204"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#ab375ffb2d2c59ec629532ab19b365473">00204</a>     uint8_t bTeoPrologue[3]; 
<a name="l00205"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#ab72df82de81107fe9ca3ce798ec88c22">00205</a>     uint32_t <a class="code" href="structPIN__MODIFY__STRUCTURE.html#ab72df82de81107fe9ca3ce798ec88c22" title="length of Data to be sent to the ICC">ulDataLength</a>; 
<a name="l00206"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a23fcd24347c2e71f162fdae11117aebf">00206</a>     uint8_t abData[1]; 
<a name="l00207"></a>00207 } <a class="code" href="structPIN__MODIFY__STRUCTURE.html" title="structure used with FEATURE_MODIFY_PIN_DIRECT">PIN_MODIFY_STRUCTURE</a>;
<a name="l00208"></a>00208 
<a name="l00210"></a><a class="code" href="structPIN__PROPERTIES__STRUCTURE.html">00210</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00211"></a><a class="code" href="structPIN__PROPERTIES__STRUCTURE.html#a0c3aaa9ed319fe09c21d707aff134854">00211</a>     uint16_t <a class="code" href="structPIN__PROPERTIES__STRUCTURE.html#a0c3aaa9ed319fe09c21d707aff134854" title="display characteristics">wLcdLayout</a>; 
<a name="l00212"></a>00212     uint8_t bEntryValidationCondition;
<a name="l00213"></a>00213     uint8_t bTimeOut2;
<a name="l00214"></a>00214 } <a class="code" href="structPIN__PROPERTIES__STRUCTURE.html" title="structure used with FEATURE_IFD_PIN_PROPERTIES">PIN_PROPERTIES_STRUCTURE</a>;
<a name="l00215"></a>00215 
<a name="l00216"></a>00216 <span class="comment">/* restore default structure elements alignment */</span>
<a name="l00217"></a>00217 <span class="preprocessor">#if defined(__APPLE__) | defined(sun)</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#pragma pack()</span>
<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(pop)</span>
<a name="l00221"></a>00221 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00222"></a>00222 <span class="preprocessor"></span>
<a name="l00223"></a>00223 <span class="comment">/* properties returned by FEATURE_GET_TLV_PROPERTIES */</span>
<a name="l00224"></a>00224 <span class="preprocessor">#define PCSCv2_PART10_PROPERTY_wLcdLayout 1</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_bEntryValidationCondition 2</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_bTimeOut2 3</span>
<a name="l00227"></a>00227 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_wLcdMaxCharacters 4</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_wLcdMaxLines 5</span>
<a name="l00229"></a>00229 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_bMinPINSize 6</span>
<a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_bMaxPINSize 7</span>
<a name="l00231"></a>00231 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_sFirmwareID 8</span>
<a name="l00232"></a>00232 <span class="preprocessor"></span><span class="preprocessor">#define PCSCv2_PART10_PROPERTY_bPPDUSupport 9</span>
<a name="l00233"></a>00233 <span class="preprocessor"></span>
<a name="l00234"></a>00234 <span class="preprocessor">#endif</span>
<a name="l00235"></a>00235 <span class="preprocessor"></span>
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Thu Mar 31 2011 for pcsc-lite by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>