Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 6c21d55247420ace69cad1d05267fc34 > files > 128

pcsc-lite-doc-1.7.2-4.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: ifdhandler.h File Reference</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.4 -->
<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="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">ifdhandler.h File Reference</div>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="pcsclite_8h_source.html">pcsclite.h</a>&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ifdhandler.h:</div>
<div class="dyncontent">
<div class="center"><img src="ifdhandler_8h__incl.png" border="0" usemap="#ifdhandler_8h" alt=""/></div>
<map name="ifdhandler_8h" id="ifdhandler_8h">
<area shape="rect" id="node3" href="pcsclite_8h.html" title="This keeps a list of defines for pcsc&#45;lite." alt="" coords="11,83,88,112"/><area shape="rect" id="node5" href="wintypes_8h.html" title="This keeps a list of Windows(R) types." alt="" coords="7,160,92,189"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="ifdhandler_8h__dep__incl.png" border="0" usemap="#ifdhandler_8hdep" alt=""/></div>
<map name="ifdhandler_8hdep" id="ifdhandler_8hdep">
<area shape="rect" id="node3" href="readerfactory_8h.html" title="This keeps track of a list of currently available reader structures." alt="" coords="589,83,699,112"/><area shape="rect" id="node20" href="winscard_8c.html" title="This handles smartcard reader communications." alt="" coords="1108,237,1193,267"/><area shape="rect" id="node5" href="configfile_8c_source.html" title="configfile.c" alt="" coords="409,160,495,189"/><area shape="rect" id="node7" href="eventhandler_8c.html" title="This keeps track of card insertion/removal events and updates ATR, protocol, and status information..." alt="" coords="812,237,919,267"/><area shape="rect" id="node9" href="utils_8h_source.html" title="utils.h" alt="" coords="329,160,385,189"/><area shape="rect" id="node12" href="ifdwrapper_8c.html" title="This wraps the dynamic ifdhandler functions." alt="" coords="975,237,1068,267"/><area shape="rect" id="node14" href="pcscdaemon_8c.html" title="This is the main pcscd daemon." alt="" coords="5,237,112,267"/><area shape="rect" id="node16" href="readerfactory_8c.html" title="This keeps track of a list of currently available reader structures." alt="" coords="136,237,245,267"/><area shape="rect" id="node22" href="winscard__clnt_8c.html" title="winscard_clnt.c" alt="" coords="269,237,381,267"/><area shape="rect" id="node26" href="winscard__svc_8c.html" title="This demarshalls functions over the message queue and keeps track of clients and their handles..." alt="" coords="627,237,739,267"/><area shape="rect" id="node29" href="pcsc-wirecheck-dist_8c_source.html" title="pcsc&#45;wirecheck&#45;dist.c" alt="" coords="569,160,719,189"/><area shape="rect" id="node31" href="pcsc-wirecheck-gen_8c_source.html" title="pcsc&#45;wirecheck&#45;gen.c" alt="" coords="743,160,892,189"/><area shape="rect" id="node34" href="prothandler_8c.html" title="This handles protocol defaults, PTS, etc." alt="" coords="916,160,1012,189"/><area shape="rect" id="node18" href="utils_8c.html" title="utility functions" alt="" coords="547,237,603,267"/><area shape="rect" id="node24" href="winscard__msg_8c.html" title="This is responsible for client/server communication." alt="" coords="405,237,523,267"/></map>
</div>
</div>
<p><a href="ifdhandler_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__DEVICE__CAPABILITIES.html">_DEVICE_CAPABILITIES</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__ICC__STATE.html">_ICC_STATE</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__PROTOCOL__OPTIONS.html">_PROTOCOL_OPTIONS</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__SCARD__IO__HEADER.html">_SCARD_IO_HEADER</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Use by <a class="el" href="group__API.html#ga9a2d77242a271310269065e64633ab99" title="Sends an APDU to the smart card contained in the reader connected to by SCardConnect().">SCardTransmit()</a>  <a href="struct__SCARD__IO__HEADER.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae4cc2d502b6cfec5843c116f1ebb552c"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_ATR" ref="ae4cc2d502b6cfec5843c116f1ebb552c" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#ae4cc2d502b6cfec5843c116f1ebb552c">TAG_IFD_ATR</a>&#160;&#160;&#160;0x0303</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">ATR. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c90855349c36c1c6235c43c44fccca9"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_SLOTNUM" ref="a3c90855349c36c1c6235c43c44fccca9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a3c90855349c36c1c6235c43c44fccca9">TAG_IFD_SLOTNUM</a>&#160;&#160;&#160;0x0180</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">select a slot <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7f75f65ca08c10293f81835496241c4"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_SLOT_THREAD_SAFE" ref="ac7f75f65ca08c10293f81835496241c4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#ac7f75f65ca08c10293f81835496241c4">TAG_IFD_SLOT_THREAD_SAFE</a>&#160;&#160;&#160;0x0FAC</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">support access to different slots of the reader <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2bdd375902612f9aa3288bd1b8850c4c"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_THREAD_SAFE" ref="a2bdd375902612f9aa3288bd1b8850c4c" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a2bdd375902612f9aa3288bd1b8850c4c">TAG_IFD_THREAD_SAFE</a>&#160;&#160;&#160;0x0FAD</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">driver is thread safe <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f8efe163602bafbc3d2b165c5c8aec5"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_SLOTS_NUMBER" ref="a5f8efe163602bafbc3d2b165c5c8aec5" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a5f8efe163602bafbc3d2b165c5c8aec5">TAG_IFD_SLOTS_NUMBER</a>&#160;&#160;&#160;0x0FAE</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">number of slots of the reader <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bcde8044065d9932267cc2144e56fe4"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_SIMULTANEOUS_ACCESS" ref="a0bcde8044065d9932267cc2144e56fe4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a0bcde8044065d9932267cc2144e56fe4">TAG_IFD_SIMULTANEOUS_ACCESS</a>&#160;&#160;&#160;0x0FAF</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">number of reader the driver can manage <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a77f6ca5905856cd9f8c176e722f105dd">TAG_IFD_POLLING_THREAD</a>&#160;&#160;&#160;0x0FB0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">not used.  <a href="#a77f6ca5905856cd9f8c176e722f105dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab110837652c9e2ad902199148fe6193f"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_POLLING_THREAD_KILLABLE" ref="ab110837652c9e2ad902199148fe6193f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#ab110837652c9e2ad902199148fe6193f">TAG_IFD_POLLING_THREAD_KILLABLE</a>&#160;&#160;&#160;0x0FB1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">the polling thread can be killed <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b2dca31df9201bebdf61697cec1df2f"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_STOP_POLLING_THREAD" ref="a2b2dca31df9201bebdf61697cec1df2f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a2b2dca31df9201bebdf61697cec1df2f">TAG_IFD_STOP_POLLING_THREAD</a>&#160;&#160;&#160;0x0FB2</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">method used to stop the polling thread (instead of just pthread_kill()) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad5f8bb68abbed2d322558d6c853f2a7"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_POLLING_THREAD_WITH_TIMEOUT" ref="aad5f8bb68abbed2d322558d6c853f2a7" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#aad5f8bb68abbed2d322558d6c853f2a7">TAG_IFD_POLLING_THREAD_WITH_TIMEOUT</a>&#160;&#160;&#160;0x0FB3</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">driver uses a polling thread with a timeout parameter <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2686cbc05d0ae700729a1eb1deb908b1"></a><!-- doxytag: member="ifdhandler.h::IFD_HVERSION_1_0" ref="a2686cbc05d0ae700729a1eb1deb908b1" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_HVERSION_1_0</b>&#160;&#160;&#160;0x00010000</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0cceb74b4bbd682224744c6cb284b8a"></a><!-- doxytag: member="ifdhandler.h::IFD_HVERSION_2_0" ref="af0cceb74b4bbd682224744c6cb284b8a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_HVERSION_2_0</b>&#160;&#160;&#160;0x00020000</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a663b2cc882eb11d3d4fb053597ff8381"></a><!-- doxytag: member="ifdhandler.h::IFD_HVERSION_3_0" ref="a663b2cc882eb11d3d4fb053597ff8381" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_HVERSION_3_0</b>&#160;&#160;&#160;0x00030000</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a103a0059929b2de2a5426ed5dc5fa307"></a><!-- doxytag: member="ifdhandler.h::IFD_POWER_UP" ref="a103a0059929b2de2a5426ed5dc5fa307" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a103a0059929b2de2a5426ed5dc5fa307">IFD_POWER_UP</a>&#160;&#160;&#160;500</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">power up the card <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57f2b27f291e616cfca666f7b91781c3"></a><!-- doxytag: member="ifdhandler.h::IFD_POWER_DOWN" ref="a57f2b27f291e616cfca666f7b91781c3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a57f2b27f291e616cfca666f7b91781c3">IFD_POWER_DOWN</a>&#160;&#160;&#160;501</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">power down the card <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a85965d96bdaa4a69ff4b751801cd73"></a><!-- doxytag: member="ifdhandler.h::IFD_RESET" ref="a6a85965d96bdaa4a69ff4b751801cd73" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a6a85965d96bdaa4a69ff4b751801cd73">IFD_RESET</a>&#160;&#160;&#160;502</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">warm reset <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abadff53edfa14ae3dae055a5d873d68c"></a><!-- doxytag: member="ifdhandler.h::IFD_NEGOTIATE_PTS1" ref="abadff53edfa14ae3dae055a5d873d68c" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#abadff53edfa14ae3dae055a5d873d68c">IFD_NEGOTIATE_PTS1</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">negotiate PTS1 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca3ae474efbed3bd173649f2b1443776"></a><!-- doxytag: member="ifdhandler.h::IFD_NEGOTIATE_PTS2" ref="aca3ae474efbed3bd173649f2b1443776" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#aca3ae474efbed3bd173649f2b1443776">IFD_NEGOTIATE_PTS2</a>&#160;&#160;&#160;2</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">negotiate PTS2 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e25223b36a5085bd29389fac1203781"></a><!-- doxytag: member="ifdhandler.h::IFD_NEGOTIATE_PTS3" ref="a0e25223b36a5085bd29389fac1203781" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a0e25223b36a5085bd29389fac1203781">IFD_NEGOTIATE_PTS3</a>&#160;&#160;&#160;4</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">negotiate PTS3 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae45ef2a236e5e6f15eb6b24a7bdf2d72"></a><!-- doxytag: member="ifdhandler.h::IFD_SUCCESS" ref="ae45ef2a236e5e6f15eb6b24a7bdf2d72" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#ae45ef2a236e5e6f15eb6b24a7bdf2d72">IFD_SUCCESS</a>&#160;&#160;&#160;0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">no error <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e29ead07807cd3c5f62844af4f3f6f7"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_TAG" ref="a1e29ead07807cd3c5f62844af4f3f6f7" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a1e29ead07807cd3c5f62844af4f3f6f7">IFD_ERROR_TAG</a>&#160;&#160;&#160;600</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">tag unknown <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac592adb8501fc38c61577276b9400054"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_SET_FAILURE" ref="ac592adb8501fc38c61577276b9400054" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#ac592adb8501fc38c61577276b9400054">IFD_ERROR_SET_FAILURE</a>&#160;&#160;&#160;601</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">set failed <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba154400f746cc9808bd71e88e378520"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_VALUE_READ_ONLY" ref="aba154400f746cc9808bd71e88e378520" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#aba154400f746cc9808bd71e88e378520">IFD_ERROR_VALUE_READ_ONLY</a>&#160;&#160;&#160;602</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">value is read only <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35270664ceffa91b2bffe6114f80e15a"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_PTS_FAILURE" ref="a35270664ceffa91b2bffe6114f80e15a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a35270664ceffa91b2bffe6114f80e15a">IFD_ERROR_PTS_FAILURE</a>&#160;&#160;&#160;605</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">failed to negotiate PTS <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93ce14fb9588889f082c739a2d60d846"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_NOT_SUPPORTED" ref="a93ce14fb9588889f082c739a2d60d846" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_ERROR_NOT_SUPPORTED</b>&#160;&#160;&#160;606</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a920dd667096ace9714f4cdcbcf687cf3"></a><!-- doxytag: member="ifdhandler.h::IFD_PROTOCOL_NOT_SUPPORTED" ref="a920dd667096ace9714f4cdcbcf687cf3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a920dd667096ace9714f4cdcbcf687cf3">IFD_PROTOCOL_NOT_SUPPORTED</a>&#160;&#160;&#160;607</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">requested protocol not supported <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f0732913b055cb62cf09169a5dfc26b"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_POWER_ACTION" ref="a1f0732913b055cb62cf09169a5dfc26b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a1f0732913b055cb62cf09169a5dfc26b">IFD_ERROR_POWER_ACTION</a>&#160;&#160;&#160;608</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">power up failed <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a039eea1d4e865f1d9ebca321b0719c0e"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_SWALLOW" ref="a039eea1d4e865f1d9ebca321b0719c0e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_ERROR_SWALLOW</b>&#160;&#160;&#160;609</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62601ddf14271676ea438ec98fa61f83"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_EJECT" ref="a62601ddf14271676ea438ec98fa61f83" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_ERROR_EJECT</b>&#160;&#160;&#160;610</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adec3224cab2bcc7123a5a6cd762abf1e"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_CONFISCATE" ref="adec3224cab2bcc7123a5a6cd762abf1e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IFD_ERROR_CONFISCATE</b>&#160;&#160;&#160;611</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb79c344e9ae986a97b4d4b1df2e1830"></a><!-- doxytag: member="ifdhandler.h::IFD_COMMUNICATION_ERROR" ref="afb79c344e9ae986a97b4d4b1df2e1830" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#afb79c344e9ae986a97b4d4b1df2e1830">IFD_COMMUNICATION_ERROR</a>&#160;&#160;&#160;612</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">generic error <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7dbdd1a8970ac18080eb01d891915d38"></a><!-- doxytag: member="ifdhandler.h::IFD_RESPONSE_TIMEOUT" ref="a7dbdd1a8970ac18080eb01d891915d38" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a7dbdd1a8970ac18080eb01d891915d38">IFD_RESPONSE_TIMEOUT</a>&#160;&#160;&#160;613</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">timeout <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35aea7275c1fcb4e97d57f6c8fa28918"></a><!-- doxytag: member="ifdhandler.h::IFD_NOT_SUPPORTED" ref="a35aea7275c1fcb4e97d57f6c8fa28918" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a35aea7275c1fcb4e97d57f6c8fa28918">IFD_NOT_SUPPORTED</a>&#160;&#160;&#160;614</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">request is not supported <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ab7651d3879e7734375b8a6d82bb654"></a><!-- doxytag: member="ifdhandler.h::IFD_ICC_PRESENT" ref="a9ab7651d3879e7734375b8a6d82bb654" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a9ab7651d3879e7734375b8a6d82bb654">IFD_ICC_PRESENT</a>&#160;&#160;&#160;615</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">card is present <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad17dec712379cf6032b6d9cf172ab9c8"></a><!-- doxytag: member="ifdhandler.h::IFD_ICC_NOT_PRESENT" ref="ad17dec712379cf6032b6d9cf172ab9c8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#ad17dec712379cf6032b6d9cf172ab9c8">IFD_ICC_NOT_PRESENT</a>&#160;&#160;&#160;616</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">card is absent <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a0a0d086b32b271a2172baebd65d9da9f">IFD_NO_SUCH_DEVICE</a>&#160;&#160;&#160;617</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="ifdhandler_8h.html#a0a0d086b32b271a2172baebd65d9da9f">IFD_NO_SUCH_DEVICE</a> error must be returned by the driver when it detects the reader is no more present.  <a href="#a0a0d086b32b271a2172baebd65d9da9f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98d6e54de9a99c288b9732231a040073"></a><!-- doxytag: member="ifdhandler.h::IFD_ERROR_INSUFFICIENT_BUFFER" ref="a98d6e54de9a99c288b9732231a040073" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a98d6e54de9a99c288b9732231a040073">IFD_ERROR_INSUFFICIENT_BUFFER</a>&#160;&#160;&#160;618</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">buffer is too small <br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af632fe38f3fa2d080e3c8464bee43bf3"></a><!-- doxytag: member="ifdhandler.h::DEVICE_CAPABILITIES" ref="af632fe38f3fa2d080e3c8464bee43bf3" args="" -->
typedef struct <a class="el" href="struct__DEVICE__CAPABILITIES.html">_DEVICE_CAPABILITIES</a>&#160;</td><td class="memItemRight" valign="bottom"><b>DEVICE_CAPABILITIES</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4d2e6a5ca91a49ad524369d5251fef5"></a><!-- doxytag: member="ifdhandler.h::PDEVICE_CAPABILITIES" ref="ac4d2e6a5ca91a49ad524369d5251fef5" args="" -->
typedef struct <br class="typebreak"/>
<a class="el" href="struct__DEVICE__CAPABILITIES.html">_DEVICE_CAPABILITIES</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>PDEVICE_CAPABILITIES</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab47b4e809b4999476979452c27ed99d1"></a><!-- doxytag: member="ifdhandler.h::ICC_STATE" ref="ab47b4e809b4999476979452c27ed99d1" args="" -->
typedef struct <a class="el" href="struct__ICC__STATE.html">_ICC_STATE</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ICC_STATE</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7228ff524c7364a3f45c377c84f364e"></a><!-- doxytag: member="ifdhandler.h::PICC_STATE" ref="af7228ff524c7364a3f45c377c84f364e" args="" -->
typedef struct <a class="el" href="struct__ICC__STATE.html">_ICC_STATE</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>PICC_STATE</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85f51e600bdf508f1bd9efead33c862e"></a><!-- doxytag: member="ifdhandler.h::PROTOCOL_OPTIONS" ref="a85f51e600bdf508f1bd9efead33c862e" args="" -->
typedef struct <a class="el" href="struct__PROTOCOL__OPTIONS.html">_PROTOCOL_OPTIONS</a>&#160;</td><td class="memItemRight" valign="bottom"><b>PROTOCOL_OPTIONS</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60fac0bb88ed7211c8119525a651f0fe"></a><!-- doxytag: member="ifdhandler.h::PPROTOCOL_OPTIONS" ref="a60fac0bb88ed7211c8119525a651f0fe" args="" -->
typedef struct <a class="el" href="struct__PROTOCOL__OPTIONS.html">_PROTOCOL_OPTIONS</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>PPROTOCOL_OPTIONS</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43943c1504e1306b4381181d5026986e"></a><!-- doxytag: member="ifdhandler.h::SCARD_IO_HEADER" ref="a43943c1504e1306b4381181d5026986e" args="" -->
typedef struct <a class="el" href="struct__SCARD__IO__HEADER.html">_SCARD_IO_HEADER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ifdhandler_8h.html#a43943c1504e1306b4381181d5026986e">SCARD_IO_HEADER</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Use by <a class="el" href="group__API.html#ga9a2d77242a271310269065e64633ab99" title="Sends an APDU to the smart card contained in the reader connected to by SCardConnect().">SCardTransmit()</a> <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0194ebdc8164b73c10d0a389f6250c5b"></a><!-- doxytag: member="ifdhandler.h::PSCARD_IO_HEADER" ref="a0194ebdc8164b73c10d0a389f6250c5b" args="" -->
typedef struct <a class="el" href="struct__SCARD__IO__HEADER.html">_SCARD_IO_HEADER</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>PSCARD_IO_HEADER</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b9eeb2a482090e832a265407ebd7eaf"></a><!-- doxytag: member="ifdhandler.h::RESPONSECODE" ref="a2b9eeb2a482090e832a265407ebd7eaf" args="" -->
typedef long&#160;</td><td class="memItemRight" valign="bottom"><b>RESPONSECODE</b></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gabb9fe35a68fa080ce9397f0b830b1e7e">IFDHCreateChannelByName</a> (DWORD Lun, LPSTR DeviceName)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is required to open a communications channel to the port listed by <code>DeviceName</code>.  <a href="group__IFDHandler.html#gabb9fe35a68fa080ce9397f0b830b1e7e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gabc775e84456eab0bac55df678a147dc9">IFDHControl</a> (DWORD Lun, DWORD dwControlCode, PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, DWORD RxLength, LPDWORD pdwBytesReturned)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a data exchange with the reader (not the card) specified by Lun.  <a href="group__IFDHandler.html#gabc775e84456eab0bac55df678a147dc9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gaccb95bc0b2e679c992c6928b0e0e3fe3">IFDHCreateChannel</a> (DWORD Lun, DWORD Channel)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is required to open a communications channel to the port listed by Channel.  <a href="group__IFDHandler.html#gaccb95bc0b2e679c992c6928b0e0e3fe3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#ga372175bc1cb70ee90dc2f77ddf6275c3">IFDHCloseChannel</a> (DWORD Lun)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function should close the reader communication channel for the particular reader.  <a href="group__IFDHandler.html#ga372175bc1cb70ee90dc2f77ddf6275c3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#ga799aa26945bbd3f61aaa57107f63ae0b">IFDHGetCapabilities</a> (DWORD Lun, DWORD Tag, PDWORD Length, PUCHAR Value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function should get the slot/card capabilities for a particular slot/card specified by Lun.  <a href="group__IFDHandler.html#ga799aa26945bbd3f61aaa57107f63ae0b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gab0ae04abb9850ccff194112bacd18fcb">IFDHSetCapabilities</a> (DWORD Lun, DWORD Tag, DWORD Length, PUCHAR Value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function should set the slot/card capabilities for a particular slot/card specified by <code>Lun</code>.  <a href="group__IFDHandler.html#gab0ae04abb9850ccff194112bacd18fcb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gaa6fc195cb450a147550f4671492257ad">IFDHSetProtocolParameters</a> (DWORD Lun, DWORD Protocol, UCHAR Flags, UCHAR PTS1, UCHAR PTS2, UCHAR PTS3)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function should set the Protocol Type Selection (PTS) of a particular card/slot using the three PTS parameters sent.  <a href="group__IFDHandler.html#gaa6fc195cb450a147550f4671492257ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gae6e70f53c76e9dab59164b2af8e9edfc">IFDHPowerICC</a> (DWORD Lun, DWORD Action, PUCHAR Atr, PDWORD AtrLength)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function controls the power and reset signals of the smart card reader at the particular reader/slot specified by <code>Lun</code>.  <a href="group__IFDHandler.html#gae6e70f53c76e9dab59164b2af8e9edfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gac86e07f01d11accda93fb80d3935eeed">IFDHTransmitToICC</a> (DWORD Lun, <a class="el" href="struct__SCARD__IO__HEADER.html">SCARD_IO_HEADER</a> SendPci, PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, PDWORD RxLength, <a class="el" href="struct__SCARD__IO__HEADER.html">PSCARD_IO_HEADER</a> RecvPci)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs an APDU exchange with the card/slot specified by Lun.  <a href="group__IFDHandler.html#gac86e07f01d11accda93fb80d3935eeed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RESPONSECODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__IFDHandler.html#gac0ef46f09df179c44a82259468bea174">IFDHICCPresence</a> (DWORD Lun)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the status of the card inserted in the reader/slot specified by <code>Lun</code>.  <a href="group__IFDHandler.html#gac0ef46f09df179c44a82259468bea174"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock">
<p>Definition in file <a class="el" href="ifdhandler_8h_source.html">ifdhandler.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a0a0d086b32b271a2172baebd65d9da9f"></a><!-- doxytag: member="ifdhandler.h::IFD_NO_SUCH_DEVICE" ref="a0a0d086b32b271a2172baebd65d9da9f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IFD_NO_SUCH_DEVICE&#160;&#160;&#160;617</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The <a class="el" href="ifdhandler_8h.html#a0a0d086b32b271a2172baebd65d9da9f">IFD_NO_SUCH_DEVICE</a> error must be returned by the driver when it detects the reader is no more present. </p>
<p>This will tell pcscd to remove the reader from the list of available readers. </p>

<p>Definition at line <a class="el" href="ifdhandler_8h_source.html#l00349">349</a> of file <a class="el" href="ifdhandler_8h_source.html">ifdhandler.h</a>.</p>

<p>Referenced by <a class="el" href="ifdwrapper_8c_source.html#l00424">IFDControl()</a>, <a class="el" href="ifdwrapper_8c_source.html#l00247">IFDPowerICC()</a>, <a class="el" href="ifdwrapper_8c_source.html#l00316">IFDStatusICC()</a>, and <a class="el" href="ifdwrapper_8c_source.html#l00484">IFDTransmit()</a>.</p>

</div>
</div>
<a class="anchor" id="a77f6ca5905856cd9f8c176e722f105dd"></a><!-- doxytag: member="ifdhandler.h::TAG_IFD_POLLING_THREAD" ref="a77f6ca5905856cd9f8c176e722f105dd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAG_IFD_POLLING_THREAD&#160;&#160;&#160;0x0FB0</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>not used. </p>
<p>See TAG_IFD_POLLING_THREAD_WITH_TIMEOUT </p>

<p>Definition at line <a class="el" href="ifdhandler_8h_source.html#l00305">305</a> of file <a class="el" href="ifdhandler_8h_source.html">ifdhandler.h</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Thu Sep 15 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.4 </small></address>
</body>
</html>