<!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: ifdwrapper.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.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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 class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_c68a5dfdca54003c765e303a18006edb.html">src</a> </div> </div> <div class="contents"> <h1>ifdwrapper.h File Reference</h1> <p>This wraps the dynamic ifdhandler functions. <a href="#_details">More...</a></p> <div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dynsection"> </div> <p><a href="ifdwrapper_8h_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b54fc7975107632f26accd3a315e5bb"></a><!-- doxytag: member="ifdwrapper.h::IFDOpenIFD" ref="a5b54fc7975107632f26accd3a315e5bb" args="(PREADER_CONTEXT)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a5b54fc7975107632f26accd3a315e5bb">IFDOpenIFD</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open a communication channel to the IFD. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f9018c7e003546485f37f478c1754d7"></a><!-- doxytag: member="ifdwrapper.h::IFDCloseIFD" ref="a5f9018c7e003546485f37f478c1754d7" args="(PREADER_CONTEXT)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a5f9018c7e003546485f37f478c1754d7">IFDCloseIFD</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Close a communication channel to the IFD. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f4128cfdf0be11a7aaefdc9ad6c86db"></a><!-- doxytag: member="ifdwrapper.h::IFDPowerICC" ref="a9f4128cfdf0be11a7aaefdc9ad6c86db" args="(PREADER_CONTEXT, DWORD, PUCHAR, PDWORD)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a9f4128cfdf0be11a7aaefdc9ad6c86db">IFDPowerICC</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, DWORD, PUCHAR, PDWORD)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Power up/down or reset's an ICC located in the IFD. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84f333c73a0d7d8edab0660b55eff13c"></a><!-- doxytag: member="ifdwrapper.h::IFDStatusICC" ref="a84f333c73a0d7d8edab0660b55eff13c" args="(PREADER_CONTEXT, PDWORD, PUCHAR, PDWORD)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a84f333c73a0d7d8edab0660b55eff13c">IFDStatusICC</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, PDWORD, PUCHAR, PDWORD)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provide statistical information about the IFD and ICC including insertions, atr, powering status/etc. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae999222273346aa34b0e07e80ee0098"></a><!-- doxytag: member="ifdwrapper.h::IFDControl_v2" ref="aae999222273346aa34b0e07e80ee0098" args="(PREADER_CONTEXT, PUCHAR, DWORD, PUCHAR, PDWORD)" --> LONG </td><td class="memItemRight" valign="bottom"><b>IFDControl_v2</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, PUCHAR, DWORD, PUCHAR, PDWORD)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a0aa54a9c97fad933dfa058feb3b60f"></a><!-- doxytag: member="ifdwrapper.h::IFDControl" ref="a1a0aa54a9c97fad933dfa058feb3b60f" args="(PREADER_CONTEXT, DWORD, LPCVOID, DWORD, LPVOID, DWORD, LPDWORD)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a1a0aa54a9c97fad933dfa058feb3b60f">IFDControl</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, DWORD, LPCVOID, DWORD, LPVOID, DWORD, LPDWORD)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provide a means for toggling a specific action on the reader such as swallow, eject, biometric. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4923c2caa9f960477373858dfd91e527"></a><!-- doxytag: member="ifdwrapper.h::IFDTransmit" ref="a4923c2caa9f960477373858dfd91e527" args="(PREADER_CONTEXT, SCARD_IO_HEADER, PUCHAR, DWORD, PUCHAR, PDWORD, PSCARD_IO_HEADER)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a4923c2caa9f960477373858dfd91e527">IFDTransmit</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, <a class="el" href="struct__SCARD__IO__HEADER.html">SCARD_IO_HEADER</a>, PUCHAR, DWORD, PUCHAR, PDWORD, <a class="el" href="struct__SCARD__IO__HEADER.html">PSCARD_IO_HEADER</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Transmit an APDU to the ICC. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a7bb6cb85514af0838befe08021db3358">IFDSetPTS</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, DWORD, UCHAR, UCHAR, UCHAR, UCHAR)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the protocol type selection (PTS). <a href="#a7bb6cb85514af0838befe08021db3358"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98e6b16c7d6c1eb6239877873ffc1731"></a><!-- doxytag: member="ifdwrapper.h::IFDSetCapabilities" ref="a98e6b16c7d6c1eb6239877873ffc1731" args="(PREADER_CONTEXT, DWORD, DWORD, PUCHAR)" --> LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a98e6b16c7d6c1eb6239877873ffc1731">IFDSetCapabilities</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, DWORD, DWORD, PUCHAR)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set capabilities in the reader. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">LONG </td><td class="memItemRight" valign="bottom"><a class="el" href="ifdwrapper_8h.html#a65f07791c4be68c56ba176d3a0ed72ea">IFDGetCapabilities</a> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>, DWORD, PDWORD, PUCHAR)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get's capabilities in the reader. <a href="#a65f07791c4be68c56ba176d3a0ed72ea"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>This wraps the dynamic ifdhandler functions. </p> <p>The abstraction will eventually allow multiple card slots in the same terminal. </p> <p>Definition in file <a class="el" href="ifdwrapper_8h_source.html">ifdwrapper.h</a>.</p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a65f07791c4be68c56ba176d3a0ed72ea"></a><!-- doxytag: member="ifdwrapper.h::IFDGetCapabilities" ref="a65f07791c4be68c56ba176d3a0ed72ea" args="(PREADER_CONTEXT, DWORD, PDWORD, PUCHAR)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">LONG IFDGetCapabilities </td> <td>(</td> <td class="paramtype"><a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> </td> <td class="paramname"> <em>rContext</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">DWORD </td> <td class="paramname"> <em>dwTag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">PDWORD </td> <td class="paramname"> <em>pdwLength</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">PUCHAR </td> <td class="paramname"> <em>pucValue</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get's capabilities in the reader. </p> <p>Other functions int this file will call the driver directly to not cause a deadlock. </p> <p>Definition at line <a class="el" href="ifdwrapper_8c_source.html#l00275">275</a> of file <a class="el" href="ifdwrapper_8c_source.html">ifdwrapper.c</a>.</p> <p>References <a class="el" href="readerfactory_8h_source.html#l00125">ReaderContext::dwSlot</a>, <a class="el" href="readerfactory_8h_source.html#l00123">ReaderContext::dwVersion</a>, <a class="el" href="readerfactory_8h_source.html#l00112">ReaderContext::mMutex</a>, <a class="el" href="structReaderContext.html#abf2256a470696e4b0080850b34479388">ReaderContext::psFunctions</a>, <a class="el" href="readerfactory_8h_source.html#l00117">ReaderContext::psFunctions_v1</a>, and <a class="el" href="readerfactory_8h_source.html#l00118">ReaderContext::psFunctions_v2</a>.</p> <p>Referenced by <a class="el" href="winscard_8c_source.html#l01442">SCardGetAttrib()</a>.</p> </div> </div> <a class="anchor" id="a7bb6cb85514af0838befe08021db3358"></a><!-- doxytag: member="ifdwrapper.h::IFDSetPTS" ref="a7bb6cb85514af0838befe08021db3358" args="(PREADER_CONTEXT, DWORD, UCHAR, UCHAR, UCHAR, UCHAR)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">LONG IFDSetPTS </td> <td>(</td> <td class="paramtype"><a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> </td> <td class="paramname"> <em>rContext</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">DWORD </td> <td class="paramname"> <em>dwProtocol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">UCHAR </td> <td class="paramname"> <em>ucFlags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">UCHAR </td> <td class="paramname"> <em>ucPTS1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">UCHAR </td> <td class="paramname"> <em>ucPTS2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">UCHAR </td> <td class="paramname"> <em>ucPTS3</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the protocol type selection (PTS). </p> <p>This function sets the appropriate protocol to be used on the card. </p> <p>Definition at line <a class="el" href="ifdwrapper_8c_source.html#l00036">36</a> of file <a class="el" href="ifdwrapper_8c_source.html">ifdwrapper.c</a>.</p> <p>References <a class="el" href="readerfactory_8h_source.html#l00125">ReaderContext::dwSlot</a>, <a class="el" href="readerfactory_8h_source.html#l00123">ReaderContext::dwVersion</a>, <a class="el" href="ifdwrapper_8c_source.html#l00233">IFDSetCapabilities()</a>, <a class="el" href="structReaderContext.html#abf2256a470696e4b0080850b34479388">ReaderContext::psFunctions</a>, <a class="el" href="readerfactory_8h_source.html#l00117">ReaderContext::psFunctions_v1</a>, <a class="el" href="readerfactory_8h_source.html#l00118">ReaderContext::psFunctions_v2</a>, and <a class="el" href="pcsclite_8h_source.html#l00180">SCARD_E_UNSUPPORTED_FEATURE</a>.</p> <p>Referenced by <a class="el" href="prothandler_8c_source.html#l00080">PHSetProtocol()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>