<!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 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 <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 Page</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 id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File 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>ifdhandler.h</h1> </div> </div> <div class="contents"> <a href="ifdhandler_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-2004</span> <a name="l00005"></a>00005 <span class="comment"> * David Corcoran <corcoran@linuxnet.com></span> <a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 2003-2004</span> <a name="l00007"></a>00007 <span class="comment"> * Damien Sauveron <damien.sauveron@labri.fr></span> <a name="l00008"></a>00008 <span class="comment"> * Copyright (C) 2002-2009</span> <a name="l00009"></a>00009 <span class="comment"> * Ludovic Rousseau <ludovic.rousseau@free.fr></span> <a name="l00010"></a>00010 <span class="comment"> *</span> <a name="l00011"></a>00011 <span class="comment"> * $Id: ifdhandler.h 5638 2011-02-25 13:36:57Z rousseau $</span> <a name="l00012"></a>00012 <span class="comment"> */</span> <a name="l00013"></a>00013 <a name="l00229"></a>00229 <span class="preprocessor">#ifndef _ifd_handler_h_</span> <a name="l00230"></a>00230 <span class="preprocessor"></span><span class="preprocessor">#define _ifd_handler_h_</span> <a name="l00231"></a>00231 <span class="preprocessor"></span> <a name="l00232"></a>00232 <span class="preprocessor">#include <<a class="code" href="pcsclite_8h.html" title="This keeps a list of defines for pcsc-lite.">pcsclite.h</a>></span> <a name="l00233"></a>00233 <a name="l00234"></a>00234 <span class="comment">/*</span> <a name="l00235"></a>00235 <span class="comment"> * List of data structures available to ifdhandler</span> <a name="l00236"></a>00236 <span class="comment"> */</span> <a name="l00237"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html">00237</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__DEVICE__CAPABILITIES.html">_DEVICE_CAPABILITIES</a> <a name="l00238"></a>00238 { <a name="l00239"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a21887226302077808af869013e839234">00239</a> LPSTR <a class="code" href="struct__DEVICE__CAPABILITIES.html#a21887226302077808af869013e839234" title="Tag 0x0100.">Vendor_Name</a>; <a name="l00240"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#ac6c398ec8ba266fdc799d0465a800e8e">00240</a> LPSTR <a class="code" href="struct__DEVICE__CAPABILITIES.html#ac6c398ec8ba266fdc799d0465a800e8e" title="Tag 0x0101.">IFD_Type</a>; <a name="l00241"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a227146ff8ca274f3438e8fa5cd75fff0">00241</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a227146ff8ca274f3438e8fa5cd75fff0" title="Tag 0x0102.">IFD_Version</a>; <a name="l00242"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#add55b738f83e83e059bd57a4532b6227">00242</a> LPSTR <a class="code" href="struct__DEVICE__CAPABILITIES.html#add55b738f83e83e059bd57a4532b6227" title="Tag 0x0103.">IFD_Serial</a>; <a name="l00243"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a9d8cb7be5aefa94b894154eaa8e40968">00243</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a9d8cb7be5aefa94b894154eaa8e40968" title="Tag 0x0110.">IFD_Channel_ID</a>; <a name="l00245"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#acae2c1765a512171de17ad635360e596">00245</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#acae2c1765a512171de17ad635360e596" title="Tag 0x0120.">Asynch_Supported</a>; <a name="l00246"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#aa2014c9a864a119c8872898b1dfebfdb">00246</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#aa2014c9a864a119c8872898b1dfebfdb" title="Tag 0x0121.">Default_Clock</a>; <a name="l00247"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#add7822346e2001caeeed242b50ec9aff">00247</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#add7822346e2001caeeed242b50ec9aff" title="Tag 0x0122.">Max_Clock</a>; <a name="l00248"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a4b6d5b43b7631e3bd5ddfd89bbf28f69">00248</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a4b6d5b43b7631e3bd5ddfd89bbf28f69" title="Tag 0x0123.">Default_Data_Rate</a>; <a name="l00249"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a5da7ca32d144e6e72fadd22061b49aaa">00249</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a5da7ca32d144e6e72fadd22061b49aaa" title="Tag 0x0124.">Max_Data_Rate</a>; <a name="l00250"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#ac7cf0dc7abe749b42926a2ca88e57b14">00250</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#ac7cf0dc7abe749b42926a2ca88e57b14" title="Tag 0x0125.">Max_IFSD</a>; <a name="l00251"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a8ee02ea282d90f900dd9c000f7aeaeed">00251</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a8ee02ea282d90f900dd9c000f7aeaeed" title="Tag 0x0126.">Synch_Supported</a>; <a name="l00252"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a587e8b46ab7382278c2b32c39af4ea4d">00252</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a587e8b46ab7382278c2b32c39af4ea4d" title="Tag 0x0131.">Power_Mgmt</a>; <a name="l00253"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a8eeffa9789e57461bd7877d5cec30a4c">00253</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a8eeffa9789e57461bd7877d5cec30a4c" title="Tag 0x0140.">Card_Auth_Devices</a>; <a name="l00254"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#a0fbfaa9f35b983ded2930221fed1efef">00254</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#a0fbfaa9f35b983ded2930221fed1efef" title="Tag 0x0142.">User_Auth_Device</a>; <a name="l00255"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#aa3bd30cc192de4050358024c28d5c738">00255</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#aa3bd30cc192de4050358024c28d5c738" title="Tag 0x0150.">Mechanics_Supported</a>; <a name="l00256"></a><a class="code" href="struct__DEVICE__CAPABILITIES.html#aa34b013ae3201a6688b09cd600d089cd">00256</a> DWORD <a class="code" href="struct__DEVICE__CAPABILITIES.html#aa34b013ae3201a6688b09cd600d089cd" title="Tag 0x0180 - 0x01F0 User Defined.">Vendor_Features</a>; <a name="l00257"></a>00257 } <a name="l00258"></a>00258 <a class="code" href="struct__DEVICE__CAPABILITIES.html">DEVICE_CAPABILITIES</a>, *<a class="code" href="struct__DEVICE__CAPABILITIES.html">PDEVICE_CAPABILITIES</a>; <a name="l00259"></a>00259 <a name="l00260"></a><a class="code" href="struct__ICC__STATE.html">00260</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__ICC__STATE.html">_ICC_STATE</a> <a name="l00261"></a>00261 { <a name="l00262"></a><a class="code" href="struct__ICC__STATE.html#a68e1b22785e5fbcceff801fe329c0c4d">00262</a> UCHAR <a class="code" href="struct__ICC__STATE.html#a68e1b22785e5fbcceff801fe329c0c4d" title="Tag 0x0300.">ICC_Presence</a>; <a name="l00263"></a><a class="code" href="struct__ICC__STATE.html#a24fd3a0dea063d85d9a632c0fb837bef">00263</a> UCHAR <a class="code" href="struct__ICC__STATE.html#a24fd3a0dea063d85d9a632c0fb837bef" title="Tag 0x0301.">ICC_Interface_Status</a>; <a name="l00264"></a><a class="code" href="struct__ICC__STATE.html#a9d1ee318fc64d1067ca57ffabc770d48">00264</a> UCHAR <a class="code" href="struct__ICC__STATE.html#a9d1ee318fc64d1067ca57ffabc770d48" title="Tag 0x0303.">ATR</a>[<a class="code" href="pcsclite_8h.html#a7ac7915ff6f9baefa66886c98bdbb91e" title="Maximum ATR size.">MAX_ATR_SIZE</a>]; <a name="l00265"></a><a class="code" href="struct__ICC__STATE.html#ae328d7efdebc705c57e1f8f5d83ff3d2">00265</a> UCHAR <a class="code" href="struct__ICC__STATE.html#ae328d7efdebc705c57e1f8f5d83ff3d2" title="Tag 0x0304.">ICC_Type</a>; <a name="l00266"></a>00266 } <a name="l00267"></a>00267 <a class="code" href="struct__ICC__STATE.html">ICC_STATE</a>, *<a class="code" href="struct__ICC__STATE.html">PICC_STATE</a>; <a name="l00268"></a>00268 <a name="l00269"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html">00269</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__PROTOCOL__OPTIONS.html">_PROTOCOL_OPTIONS</a> <a name="l00270"></a>00270 { <a name="l00271"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a9f3f53ade7bfd52e1eb1ad75dc43164e">00271</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a9f3f53ade7bfd52e1eb1ad75dc43164e" title="Tag 0x0201.">Protocol_Type</a>; <a name="l00272"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a04b89d1a589d560418e344b29ad70796">00272</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a04b89d1a589d560418e344b29ad70796" title="Tag 0x0202.">Current_Clock</a>; <a name="l00273"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a05a7fb2d575d29720bf48bd751875a25">00273</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a05a7fb2d575d29720bf48bd751875a25" title="Tag 0x0203.">Current_F</a>; <a name="l00274"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a0f9ae7c5145c7e7449ae7695c241074d">00274</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a0f9ae7c5145c7e7449ae7695c241074d" title="Tag 0x0204.">Current_D</a>; <a name="l00275"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a684b3cd20e58e47aa455197e78cd88d8">00275</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a684b3cd20e58e47aa455197e78cd88d8" title="Tag 0x0205.">Current_N</a>; <a name="l00276"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a9b4a081818c7181650dbe0ba87e43022">00276</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a9b4a081818c7181650dbe0ba87e43022" title="Tag 0x0206.">Current_W</a>; <a name="l00277"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a438af1bc436efbbbde9aead9da70296b">00277</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a438af1bc436efbbbde9aead9da70296b" title="Tag 0x0207.">Current_IFSC</a>; <a name="l00278"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#acb0fb49f1072207c271f9025032fdd31">00278</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#acb0fb49f1072207c271f9025032fdd31" title="Tag 0x0208.">Current_IFSD</a>; <a name="l00279"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a12c5f1b7552dacecd7ca849f367557e9">00279</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a12c5f1b7552dacecd7ca849f367557e9" title="Tag 0x0209.">Current_BWT</a>; <a name="l00280"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a400ce36ac25e949f7816cf081e4012f9">00280</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a400ce36ac25e949f7816cf081e4012f9" title="Tag 0x020A.">Current_CWT</a>; <a name="l00281"></a><a class="code" href="struct__PROTOCOL__OPTIONS.html#a2881b6d3d38a13ad821fa693ca3fc92e">00281</a> DWORD <a class="code" href="struct__PROTOCOL__OPTIONS.html#a2881b6d3d38a13ad821fa693ca3fc92e" title="Tag 0x020B.">Current_EBC</a>; <a name="l00282"></a>00282 } <a name="l00283"></a>00283 <a class="code" href="struct__PROTOCOL__OPTIONS.html">PROTOCOL_OPTIONS</a>, *<a class="code" href="struct__PROTOCOL__OPTIONS.html">PPROTOCOL_OPTIONS</a>; <a name="l00284"></a>00284 <a name="l00288"></a><a class="code" href="struct__SCARD__IO__HEADER.html">00288</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__SCARD__IO__HEADER.html" title="Use by SCardTransmit()">_SCARD_IO_HEADER</a> <a name="l00289"></a>00289 { <a name="l00290"></a>00290 DWORD Protocol; <a name="l00291"></a>00291 DWORD Length; <a name="l00292"></a>00292 } <a name="l00293"></a>00293 <a class="code" href="ifdhandler_8h.html#a43943c1504e1306b4381181d5026986e" title="Use by SCardTransmit()">SCARD_IO_HEADER</a>, *<a class="code" href="struct__SCARD__IO__HEADER.html" title="Use by SCardTransmit()">PSCARD_IO_HEADER</a>; <a name="l00294"></a>00294 <a name="l00295"></a>00295 <span class="comment">/*</span> <a name="l00296"></a>00296 <span class="comment"> * The list of tags should be alot more but this is all I use in the</span> <a name="l00297"></a>00297 <span class="comment"> * meantime</span> <a name="l00298"></a>00298 <span class="comment"> */</span> <a name="l00299"></a><a class="code" href="ifdhandler_8h.html#ae4cc2d502b6cfec5843c116f1ebb552c">00299</a> <span class="preprocessor">#define TAG_IFD_ATR 0x0303 </span> <a name="l00300"></a><a class="code" href="ifdhandler_8h.html#a3c90855349c36c1c6235c43c44fccca9">00300</a> <span class="preprocessor">#define TAG_IFD_SLOTNUM 0x0180 </span> <a name="l00301"></a><a class="code" href="ifdhandler_8h.html#ac7f75f65ca08c10293f81835496241c4">00301</a> <span class="preprocessor">#define TAG_IFD_SLOT_THREAD_SAFE 0x0FAC </span> <a name="l00302"></a><a class="code" href="ifdhandler_8h.html#a2bdd375902612f9aa3288bd1b8850c4c">00302</a> <span class="preprocessor">#define TAG_IFD_THREAD_SAFE 0x0FAD </span> <a name="l00303"></a><a class="code" href="ifdhandler_8h.html#a5f8efe163602bafbc3d2b165c5c8aec5">00303</a> <span class="preprocessor">#define TAG_IFD_SLOTS_NUMBER 0x0FAE </span> <a name="l00304"></a><a class="code" href="ifdhandler_8h.html#a0bcde8044065d9932267cc2144e56fe4">00304</a> <span class="preprocessor">#define TAG_IFD_SIMULTANEOUS_ACCESS 0x0FAF </span> <a name="l00305"></a><a class="code" href="ifdhandler_8h.html#a77f6ca5905856cd9f8c176e722f105dd">00305</a> <span class="preprocessor">#define TAG_IFD_POLLING_THREAD 0x0FB0 </span> <a name="l00306"></a><a class="code" href="ifdhandler_8h.html#ab110837652c9e2ad902199148fe6193f">00306</a> <span class="preprocessor">#define TAG_IFD_POLLING_THREAD_KILLABLE 0x0FB1 </span> <a name="l00307"></a><a class="code" href="ifdhandler_8h.html#a2b2dca31df9201bebdf61697cec1df2f">00307</a> <span class="preprocessor">#define TAG_IFD_STOP_POLLING_THREAD 0x0FB2 </span> <a name="l00308"></a><a class="code" href="ifdhandler_8h.html#aad5f8bb68abbed2d322558d6c853f2a7">00308</a> <span class="preprocessor">#define TAG_IFD_POLLING_THREAD_WITH_TIMEOUT 0x0FB3 </span> <a name="l00310"></a>00310 <span class="preprocessor"> </span><span class="comment">/*</span> <a name="l00311"></a>00311 <span class="comment"> * IFD Handler version number enummerations</span> <a name="l00312"></a>00312 <span class="comment"> */</span> <a name="l00313"></a>00313 <span class="preprocessor">#define IFD_HVERSION_1_0 0x00010000</span> <a name="l00314"></a>00314 <span class="preprocessor"></span><span class="preprocessor">#define IFD_HVERSION_2_0 0x00020000</span> <a name="l00315"></a>00315 <span class="preprocessor"></span><span class="preprocessor">#define IFD_HVERSION_3_0 0x00030000</span> <a name="l00316"></a>00316 <span class="preprocessor"></span> <a name="l00317"></a>00317 <span class="comment">/*</span> <a name="l00318"></a>00318 <span class="comment"> * List of defines available to ifdhandler</span> <a name="l00319"></a>00319 <span class="comment"> */</span> <a name="l00320"></a><a class="code" href="ifdhandler_8h.html#a103a0059929b2de2a5426ed5dc5fa307">00320</a> <span class="preprocessor">#define IFD_POWER_UP 500 </span> <a name="l00321"></a><a class="code" href="ifdhandler_8h.html#a57f2b27f291e616cfca666f7b91781c3">00321</a> <span class="preprocessor">#define IFD_POWER_DOWN 501 </span> <a name="l00322"></a><a class="code" href="ifdhandler_8h.html#a6a85965d96bdaa4a69ff4b751801cd73">00322</a> <span class="preprocessor">#define IFD_RESET 502 </span> <a name="l00324"></a><a class="code" href="ifdhandler_8h.html#abadff53edfa14ae3dae055a5d873d68c">00324</a> <span class="preprocessor">#define IFD_NEGOTIATE_PTS1 1 </span> <a name="l00325"></a><a class="code" href="ifdhandler_8h.html#aca3ae474efbed3bd173649f2b1443776">00325</a> <span class="preprocessor">#define IFD_NEGOTIATE_PTS2 2 </span> <a name="l00326"></a><a class="code" href="ifdhandler_8h.html#a0e25223b36a5085bd29389fac1203781">00326</a> <span class="preprocessor">#define IFD_NEGOTIATE_PTS3 4 </span> <a name="l00328"></a><a class="code" href="ifdhandler_8h.html#ae45ef2a236e5e6f15eb6b24a7bdf2d72">00328</a> <span class="preprocessor">#define IFD_SUCCESS 0 </span> <a name="l00329"></a><a class="code" href="ifdhandler_8h.html#a1e29ead07807cd3c5f62844af4f3f6f7">00329</a> <span class="preprocessor">#define IFD_ERROR_TAG 600 </span> <a name="l00330"></a><a class="code" href="ifdhandler_8h.html#ac592adb8501fc38c61577276b9400054">00330</a> <span class="preprocessor">#define IFD_ERROR_SET_FAILURE 601 </span> <a name="l00331"></a><a class="code" href="ifdhandler_8h.html#aba154400f746cc9808bd71e88e378520">00331</a> <span class="preprocessor">#define IFD_ERROR_VALUE_READ_ONLY 602 </span> <a name="l00332"></a><a class="code" href="ifdhandler_8h.html#a35270664ceffa91b2bffe6114f80e15a">00332</a> <span class="preprocessor">#define IFD_ERROR_PTS_FAILURE 605 </span> <a name="l00333"></a>00333 <span class="preprocessor">#define IFD_ERROR_NOT_SUPPORTED 606</span> <a name="l00334"></a><a class="code" href="ifdhandler_8h.html#a920dd667096ace9714f4cdcbcf687cf3">00334</a> <span class="preprocessor"></span><span class="preprocessor">#define IFD_PROTOCOL_NOT_SUPPORTED 607 </span> <a name="l00335"></a><a class="code" href="ifdhandler_8h.html#a1f0732913b055cb62cf09169a5dfc26b">00335</a> <span class="preprocessor">#define IFD_ERROR_POWER_ACTION 608 </span> <a name="l00336"></a>00336 <span class="preprocessor">#define IFD_ERROR_SWALLOW 609</span> <a name="l00337"></a>00337 <span class="preprocessor"></span><span class="preprocessor">#define IFD_ERROR_EJECT 610</span> <a name="l00338"></a>00338 <span class="preprocessor"></span><span class="preprocessor">#define IFD_ERROR_CONFISCATE 611</span> <a name="l00339"></a><a class="code" href="ifdhandler_8h.html#afb79c344e9ae986a97b4d4b1df2e1830">00339</a> <span class="preprocessor"></span><span class="preprocessor">#define IFD_COMMUNICATION_ERROR 612 </span> <a name="l00340"></a><a class="code" href="ifdhandler_8h.html#a7dbdd1a8970ac18080eb01d891915d38">00340</a> <span class="preprocessor">#define IFD_RESPONSE_TIMEOUT 613 </span> <a name="l00341"></a><a class="code" href="ifdhandler_8h.html#a35aea7275c1fcb4e97d57f6c8fa28918">00341</a> <span class="preprocessor">#define IFD_NOT_SUPPORTED 614 </span> <a name="l00342"></a><a class="code" href="ifdhandler_8h.html#a9ab7651d3879e7734375b8a6d82bb654">00342</a> <span class="preprocessor">#define IFD_ICC_PRESENT 615 </span> <a name="l00343"></a><a class="code" href="ifdhandler_8h.html#ad17dec712379cf6032b6d9cf172ab9c8">00343</a> <span class="preprocessor">#define IFD_ICC_NOT_PRESENT 616 </span> <a name="l00349"></a><a class="code" href="ifdhandler_8h.html#a0a0d086b32b271a2172baebd65d9da9f">00349</a> <span class="preprocessor">#define IFD_NO_SUCH_DEVICE 617</span> <a name="l00350"></a><a class="code" href="ifdhandler_8h.html#a98d6e54de9a99c288b9732231a040073">00350</a> <span class="preprocessor"></span><span class="preprocessor">#define IFD_ERROR_INSUFFICIENT_BUFFER 618 </span> <a name="l00352"></a>00352 <span class="preprocessor">#ifndef RESPONSECODE_DEFINED_IN_WINTYPES_H</span> <a name="l00353"></a>00353 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> RESPONSECODE; <a name="l00354"></a>00354 <span class="preprocessor">#endif</span> <a name="l00355"></a>00355 <span class="preprocessor"></span> <a name="l00356"></a>00356 <span class="comment">/*</span> <a name="l00357"></a>00357 <span class="comment"> * If you want to compile a V2.0 IFDHandler, define IFDHANDLERv2</span> <a name="l00358"></a>00358 <span class="comment"> * before you include this file.</span> <a name="l00359"></a>00359 <span class="comment"> *</span> <a name="l00360"></a>00360 <span class="comment"> * By default it is setup for for most recent version of the API (V3.0)</span> <a name="l00361"></a>00361 <span class="comment"> */</span> <a name="l00362"></a>00362 <a name="l00363"></a>00363 <span class="preprocessor">#ifndef IFDHANDLERv2</span> <a name="l00364"></a>00364 <span class="preprocessor"></span> <a name="l00365"></a>00365 <span class="comment">/*</span> <a name="l00366"></a>00366 <span class="comment"> * List of Defined Functions Available to IFD_Handler 3.0</span> <a name="l00367"></a>00367 <span class="comment"> *</span> <a name="l00368"></a>00368 <span class="comment"> * All the functions of IFD_Handler 2.0 are available</span> <a name="l00369"></a>00369 <span class="comment"> * IFDHCreateChannelByName() is new</span> <a name="l00370"></a>00370 <span class="comment"> * IFDHControl() API changed</span> <a name="l00371"></a>00371 <span class="comment"> */</span> <a name="l00372"></a>00372 <a name="l00464"></a>00464 RESPONSECODE <a class="code" href="group__IFDHandler.html#gabb9fe35a68fa080ce9397f0b830b1e7e" title="This function is required to open a communications channel to the port listed by DeviceName.">IFDHCreateChannelByName</a>(DWORD Lun, LPSTR DeviceName); <a name="l00465"></a>00465 <a name="l00497"></a>00497 RESPONSECODE <a class="code" href="group__IFDHandler.html#gabc775e84456eab0bac55df678a147dc9" title="This function performs a data exchange with the reader (not the card) specified by Lun...">IFDHControl</a>(DWORD Lun, DWORD dwControlCode, PUCHAR <a name="l00498"></a>00498 TxBuffer, DWORD TxLength, PUCHAR RxBuffer, DWORD RxLength, <a name="l00499"></a>00499 LPDWORD pdwBytesReturned); <a name="l00500"></a>00500 <a name="l00501"></a>00501 <span class="preprocessor">#else</span> <a name="l00502"></a>00502 <span class="preprocessor"></span> <a name="l00509"></a>00509 RESPONSECODE <a class="code" href="group__IFDHandler.html#gabc775e84456eab0bac55df678a147dc9" title="This function performs a data exchange with the reader (not the card) specified by Lun...">IFDHControl</a>(DWORD Lun, PUCHAR TxBuffer, DWORD TxLength, <a name="l00510"></a>00510 PUCHAR RxBuffer, PDWORD RxLength); <a name="l00511"></a>00511 <a name="l00512"></a>00512 <span class="preprocessor">#endif</span> <a name="l00513"></a>00513 <span class="preprocessor"></span> <a name="l00514"></a>00514 <span class="comment">/*</span> <a name="l00515"></a>00515 <span class="comment"> * common functions in IFD_Handler 2.0 and 3.0</span> <a name="l00516"></a>00516 <span class="comment"> */</span> <a name="l00558"></a>00558 RESPONSECODE <a class="code" href="group__IFDHandler.html#gaccb95bc0b2e679c992c6928b0e0e3fe3" title="This function is required to open a communications channel to the port listed by Channel.">IFDHCreateChannel</a>(DWORD Lun, DWORD Channel); <a name="l00559"></a>00559 <a name="l00574"></a>00574 RESPONSECODE <a class="code" href="group__IFDHandler.html#ga372175bc1cb70ee90dc2f77ddf6275c3" title="This function should close the reader communication channel for the particular reader.">IFDHCloseChannel</a>(DWORD Lun); <a name="l00575"></a>00575 <a name="l00618"></a>00618 RESPONSECODE <a class="code" href="group__IFDHandler.html#ga799aa26945bbd3f61aaa57107f63ae0b" title="This function should get the slot/card capabilities for a particular slot/card specified by Lun...">IFDHGetCapabilities</a>(DWORD Lun, DWORD Tag, PDWORD Length, <a name="l00619"></a>00619 PUCHAR Value); <a name="l00620"></a>00620 <a name="l00642"></a>00642 RESPONSECODE <a class="code" href="group__IFDHandler.html#gab0ae04abb9850ccff194112bacd18fcb" title="This function should set the slot/card capabilities for a particular slot/card specified by Lun...">IFDHSetCapabilities</a>(DWORD Lun, DWORD Tag, DWORD Length, PUCHAR Value); <a name="l00643"></a>00643 <a name="l00673"></a>00673 RESPONSECODE <a class="code" href="group__IFDHandler.html#gaa6fc195cb450a147550f4671492257ad" title="This function should set the Protocol Type Selection (PTS) of a particular card/slot using the three ...">IFDHSetProtocolParameters</a>(DWORD Lun, DWORD Protocol, UCHAR Flags, <a name="l00674"></a>00674 UCHAR PTS1, UCHAR PTS2, UCHAR PTS3); <a name="l00707"></a>00707 RESPONSECODE <a class="code" href="group__IFDHandler.html#gae6e70f53c76e9dab59164b2af8e9edfc" title="This function controls the power and reset signals of the smart card reader at the particular reader/...">IFDHPowerICC</a>(DWORD Lun, DWORD Action, PUCHAR Atr, PDWORD <a name="l00708"></a>00708 AtrLength); <a name="l00709"></a>00709 <a name="l00761"></a>00761 RESPONSECODE <a class="code" href="group__IFDHandler.html#gac86e07f01d11accda93fb80d3935eeed" title="This function performs an APDU exchange with the card/slot specified by Lun.">IFDHTransmitToICC</a>(DWORD Lun, <a class="code" href="struct__SCARD__IO__HEADER.html" title="Use by SCardTransmit()">SCARD_IO_HEADER</a> SendPci, <a name="l00762"></a>00762 PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, PDWORD <a name="l00763"></a>00763 RxLength, PSCARD_IO_HEADER RecvPci); <a name="l00764"></a>00764 <a name="l00781"></a>00781 RESPONSECODE <a class="code" href="group__IFDHandler.html#gac0ef46f09df179c44a82259468bea174" title="This function returns the status of the card inserted in the reader/slot specified by Lun...">IFDHICCPresence</a>(DWORD Lun); <a name="l00782"></a>00782 <a name="l00783"></a>00783 <span class="preprocessor">#endif</span> </pre></div></div> </div> <hr class="footer"/><address class="footer"><small>Generated on Thu Mar 31 2011 for pcsc-lite by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>