Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 8db5617ff88aacc3075d0be1db459900 > files > 221

pcsc-lite-doc-1.8.11-4.mga5.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>pcsc-lite: winscard_clnt.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<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.8.11</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
  <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>
    </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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">winscard_clnt.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;config.h&quot;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;sys/types.h&gt;</code><br />
<code>#include &lt;fcntl.h&gt;</code><br />
<code>#include &lt;unistd.h&gt;</code><br />
<code>#include &lt;sys/un.h&gt;</code><br />
<code>#include &lt;errno.h&gt;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
<code>#include &lt;sys/time.h&gt;</code><br />
<code>#include &lt;pthread.h&gt;</code><br />
<code>#include &lt;sys/wait.h&gt;</code><br />
<code>#include &quot;misc.h&quot;</code><br />
<code>#include &quot;<a class="el" href="pcscd_8h_source.html">pcscd.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="winscard_8h_source.html">winscard.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="debuglog_8h_source.html">debuglog.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="strlcpycat_8h_source.html">strlcpycat.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="readerfactory_8h_source.html">readerfactory.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="eventhandler_8h_source.html">eventhandler.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="sys__generic_8h_source.html">sys_generic.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="winscard__msg_8h_source.html">winscard_msg.h</a>&quot;</code><br />
<code>#include &quot;utils.h&quot;</code><br />
</div>
<p><a href="winscard__clnt_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__psChannelMap.html">_psChannelMap</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents an Application Context Channel.  <a href="struct__psChannelMap.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__psContextMap.html">_psContextMap</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents the an Application Context on the Client side.  <a href="struct__psContextMap.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ac7c340dc56974012d266eff9be71e9ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7c340dc56974012d266eff9be71e9ed"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#ac7c340dc56974012d266eff9be71e9ed">SCARD_PROTOCOL_ANY_OLD</a>&#160;&#160;&#160;0x1000</td></tr>
<tr class="memdesc:ac7c340dc56974012d266eff9be71e9ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">used for backward compatibility <br /></td></tr>
<tr class="separator:ac7c340dc56974012d266eff9be71e9ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8cecfc5c5c054d2875c03e77b7be15d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TRUE</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa93f0eb578d23995850d61f7d61c55c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa93f0eb578d23995850d61f7d61c55c1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FALSE</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:aa93f0eb578d23995850d61f7d61c55c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad86358bf19927183dd7b4ae215a29731"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad86358bf19927183dd7b4ae215a29731"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>COLOR_RED</b>&#160;&#160;&#160;&quot;\33[01;31m&quot;</td></tr>
<tr class="separator:ad86358bf19927183dd7b4ae215a29731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc9149f5de51bd9ac4f5ebbfa153f018"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc9149f5de51bd9ac4f5ebbfa153f018"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>COLOR_GREEN</b>&#160;&#160;&#160;&quot;\33[32m&quot;</td></tr>
<tr class="separator:afc9149f5de51bd9ac4f5ebbfa153f018"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23c70d699a5a775bc2e1ebeb8603f630"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23c70d699a5a775bc2e1ebeb8603f630"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>COLOR_BLUE</b>&#160;&#160;&#160;&quot;\33[34m&quot;</td></tr>
<tr class="separator:a23c70d699a5a775bc2e1ebeb8603f630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8deb0beccea721b35bdb1b4f7264fe75"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8deb0beccea721b35bdb1b4f7264fe75"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>COLOR_MAGENTA</b>&#160;&#160;&#160;&quot;\33[35m&quot;</td></tr>
<tr class="separator:a8deb0beccea721b35bdb1b4f7264fe75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac366dc6682d1d12bcae1eb1ae8ae09c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac366dc6682d1d12bcae1eb1ae8ae09c5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>COLOR_NORMAL</b>&#160;&#160;&#160;&quot;\33[0m&quot;</td></tr>
<tr class="separator:ac366dc6682d1d12bcae1eb1ae8ae09c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96038722e1bf19665036b85a1ddc7749"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96038722e1bf19665036b85a1ddc7749"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>API_TRACE_IN</b>(...)</td></tr>
<tr class="separator:a96038722e1bf19665036b85a1ddc7749"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac40447850a2ff4923c0b5bb2a38a43ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac40447850a2ff4923c0b5bb2a38a43ae"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>API_TRACE_OUT</b>(...)</td></tr>
<tr class="separator:ac40447850a2ff4923c0b5bb2a38a43ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa402baa5f9ea438ec090db1e77961ecc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa402baa5f9ea438ec090db1e77961ecc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PROFILE_START</b></td></tr>
<tr class="separator:aa402baa5f9ea438ec090db1e77961ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62b2b1636665925df13b65761b9015db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62b2b1636665925df13b65761b9015db"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PROFILE_END</b>(rv)</td></tr>
<tr class="separator:a62b2b1636665925df13b65761b9015db"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a1cc1f8e21119487ef295322726d50dbe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1cc1f8e21119487ef295322726d50dbe"></a>
typedef struct <a class="el" href="struct__psChannelMap.html">_psChannelMap</a>&#160;</td><td class="memItemRight" valign="bottom"><b>CHANNEL_MAP</b></td></tr>
<tr class="separator:a1cc1f8e21119487ef295322726d50dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2b439067c34904f7f2733f984cfddbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2b439067c34904f7f2733f984cfddbb"></a>
typedef struct <a class="el" href="struct__psContextMap.html">_psContextMap</a>&#160;</td><td class="memItemRight" valign="bottom"><b>SCONTEXTMAP</b></td></tr>
<tr class="separator:aa2b439067c34904f7f2733f984cfddbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a753c809db319591727f6d3d5521a0074"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a753c809db319591727f6d3d5521a0074"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>CHANNEL_MAP_seeker</b> (const void *el, const void *key)</td></tr>
<tr class="separator:a753c809db319591727f6d3d5521a0074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a188349ac564e73ebf2b6a15e98fe17bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a188349ac564e73ebf2b6a15e98fe17bc"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>SCONTEXTMAP_seeker</b> (const void *el, const void *key)</td></tr>
<tr class="separator:a188349ac564e73ebf2b6a15e98fe17bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac75190d70d571bca9915bef60491534a"><td class="memItemLeft" align="right" valign="top">static LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#ac75190d70d571bca9915bef60491534a">SCardAddContext</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext, DWORD dwClientID)</td></tr>
<tr class="memdesc:ac75190d70d571bca9915bef60491534a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for managing instances of <a class="el" href="group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67" title="Creates an Application Context to the PC/SC Resource Manager. ">SCardEstablishContext()</a> These functions keep track of Context handles and associate the blocking variable contextBlockStatus to an hContext.  <a href="#ac75190d70d571bca9915bef60491534a">More...</a><br /></td></tr>
<tr class="separator:ac75190d70d571bca9915bef60491534a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3c749483d20ff887797b0879244699"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#a8a3c749483d20ff887797b0879244699">SCardGetContext</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext)</td></tr>
<tr class="memdesc:a8a3c749483d20ff887797b0879244699"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index from the Application Context vector <code><a class="el" href="struct__psContextMap.html" title="Represents the an Application Context on the Client side. ">_psContextMap</a></code> for the passed context.  <a href="#a8a3c749483d20ff887797b0879244699">More...</a><br /></td></tr>
<tr class="separator:a8a3c749483d20ff887797b0879244699"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafd00ba256e4ba8a81491c970ee336ed"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#aafd00ba256e4ba8a81491c970ee336ed">SCardGetContextTH</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext)</td></tr>
<tr class="memdesc:aafd00ba256e4ba8a81491c970ee336ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the address from the Application Context list <code><a class="el" href="struct__psContextMap.html" title="Represents the an Application Context on the Client side. ">_psContextMap</a></code> for the passed context.  <a href="#aafd00ba256e4ba8a81491c970ee336ed">More...</a><br /></td></tr>
<tr class="separator:aafd00ba256e4ba8a81491c970ee336ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e3dc878020f1e5ccdae1a6914abd3b0"><td class="memItemLeft" align="right" valign="top">static LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#a7e3dc878020f1e5ccdae1a6914abd3b0">SCardRemoveContext</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext)</td></tr>
<tr class="memdesc:a7e3dc878020f1e5ccdae1a6914abd3b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an Application Context from a control vector.  <a href="#a7e3dc878020f1e5ccdae1a6914abd3b0">More...</a><br /></td></tr>
<tr class="separator:a7e3dc878020f1e5ccdae1a6914abd3b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06e082d192f3bc0a4d9a6fd2b9e7f84c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06e082d192f3bc0a4d9a6fd2b9e7f84c"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>SCardCleanContext</b> (<a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> *)</td></tr>
<tr class="separator:a06e082d192f3bc0a4d9a6fd2b9e7f84c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58280aed0f69a1e136a8bf07534eeea3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58280aed0f69a1e136a8bf07534eeea3"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>SCardAddHandle</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a>, <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> *, LPCSTR)</td></tr>
<tr class="separator:a58280aed0f69a1e136a8bf07534eeea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa50775d37eb073b04d74151d6ac0ca07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa50775d37eb073b04d74151d6ac0ca07"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>SCardGetContextAndChannelFromHandle</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a>, <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> **, <a class="el" href="struct__psChannelMap.html">CHANNEL_MAP</a> **)</td></tr>
<tr class="separator:aa50775d37eb073b04d74151d6ac0ca07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec726aa82d786a4895cf14ed4cb11163"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec726aa82d786a4895cf14ed4cb11163"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>SCardGetContextAndChannelFromHandleTH</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a>, <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> **, <a class="el" href="struct__psChannelMap.html">CHANNEL_MAP</a> **)</td></tr>
<tr class="separator:aec726aa82d786a4895cf14ed4cb11163"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad012ab6d25911259c82e06cb2fc1d971"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad012ab6d25911259c82e06cb2fc1d971"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>SCardRemoveHandle</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a>)</td></tr>
<tr class="separator:ad012ab6d25911259c82e06cb2fc1d971"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1debc96721101456a1c1cd8fbbdcfe2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1debc96721101456a1c1cd8fbbdcfe2"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>SCardGetSetAttrib</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, int command, DWORD dwAttrId, LPBYTE pbAttr, LPDWORD pcbAttrLen)</td></tr>
<tr class="separator:aa1debc96721101456a1c1cd8fbbdcfe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc059866489511d24d10fb2427ae0bfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc059866489511d24d10fb2427ae0bfa"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>getReaderStates</b> (<a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> *currentContextMap)</td></tr>
<tr class="separator:acc059866489511d24d10fb2427ae0bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f7e1b05b30f1e5a5cd62b2f925222fe"><td class="memItemLeft" align="right" valign="top">static LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#a1f7e1b05b30f1e5a5cd62b2f925222fe">SCardLockThread</a> (void)</td></tr>
<tr class="memdesc:a1f7e1b05b30f1e5a5cd62b2f925222fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks a mutex so another thread must wait to use this function.  <a href="#a1f7e1b05b30f1e5a5cd62b2f925222fe">More...</a><br /></td></tr>
<tr class="separator:a1f7e1b05b30f1e5a5cd62b2f925222fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dc8cab71db796c9e91329c22f4ebfa1"><td class="memItemLeft" align="right" valign="top">static LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#a5dc8cab71db796c9e91329c22f4ebfa1">SCardUnlockThread</a> (void)</td></tr>
<tr class="memdesc:a5dc8cab71db796c9e91329c22f4ebfa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlocks a mutex so another thread may use the client.  <a href="#a5dc8cab71db796c9e91329c22f4ebfa1">More...</a><br /></td></tr>
<tr class="separator:a5dc8cab71db796c9e91329c22f4ebfa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa86f1a8ccfbdbe7c64eea5219c7639e6"><td class="memItemLeft" align="right" valign="top">static LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#aa86f1a8ccfbdbe7c64eea5219c7639e6">SCardEstablishContextTH</a> (DWORD dwScope,LPCVOID pvReserved1,LPCVOID pvReserved2, LPSCARDCONTEXT phContext)</td></tr>
<tr class="memdesc:aa86f1a8ccfbdbe7c64eea5219c7639e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a communication context to the PC/SC Resource Manager.  <a href="#aa86f1a8ccfbdbe7c64eea5219c7639e6">More...</a><br /></td></tr>
<tr class="separator:aa86f1a8ccfbdbe7c64eea5219c7639e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1b8970169fd4883a6dc4a8f43f19b67"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67">SCardEstablishContext</a> (DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext)</td></tr>
<tr class="memdesc:gaa1b8970169fd4883a6dc4a8f43f19b67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an Application Context to the PC/SC Resource Manager.  <a href="group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67">More...</a><br /></td></tr>
<tr class="separator:gaa1b8970169fd4883a6dc4a8f43f19b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6aabcba7744c5c9419fdd6404f73a934"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga6aabcba7744c5c9419fdd6404f73a934">SCardReleaseContext</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext)</td></tr>
<tr class="memdesc:ga6aabcba7744c5c9419fdd6404f73a934"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys a communication context to the PC/SC Resource Manager.  <a href="group__API.html#ga6aabcba7744c5c9419fdd6404f73a934">More...</a><br /></td></tr>
<tr class="separator:ga6aabcba7744c5c9419fdd6404f73a934"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e515829752e0a8dbc4d630696a8d6a5"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5">SCardConnect</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol)</td></tr>
<tr class="memdesc:ga4e515829752e0a8dbc4d630696a8d6a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Establishes a connection to the reader specified in <code>*</code> szReader.  <a href="group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5">More...</a><br /></td></tr>
<tr class="separator:ga4e515829752e0a8dbc4d630696a8d6a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad5d4393ca8c470112ad9468c44ed8940"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gad5d4393ca8c470112ad9468c44ed8940">SCardReconnect</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, DWORD dwShareMode, DWORD dwPreferredProtocols, DWORD dwInitialization, LPDWORD pdwActiveProtocol)</td></tr>
<tr class="memdesc:gad5d4393ca8c470112ad9468c44ed8940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reestablishes a connection to a reader that was previously connected to using <a class="el" href="group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5" title="Establishes a connection to the reader specified in * szReader. ">SCardConnect()</a>.  <a href="group__API.html#gad5d4393ca8c470112ad9468c44ed8940">More...</a><br /></td></tr>
<tr class="separator:gad5d4393ca8c470112ad9468c44ed8940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4be198045c73ec0deb79e66c0ca1738a"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga4be198045c73ec0deb79e66c0ca1738a">SCardDisconnect</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, DWORD dwDisposition)</td></tr>
<tr class="memdesc:ga4be198045c73ec0deb79e66c0ca1738a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates a connection made through <a class="el" href="group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5" title="Establishes a connection to the reader specified in * szReader. ">SCardConnect()</a>.  <a href="group__API.html#ga4be198045c73ec0deb79e66c0ca1738a">More...</a><br /></td></tr>
<tr class="separator:ga4be198045c73ec0deb79e66c0ca1738a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddb835dce01a0da1d6ca02d33ee7d861"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861">SCardBeginTransaction</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard)</td></tr>
<tr class="memdesc:gaddb835dce01a0da1d6ca02d33ee7d861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Establishes a temporary exclusive access mode for doing a serie of commands in a transaction.  <a href="group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861">More...</a><br /></td></tr>
<tr class="separator:gaddb835dce01a0da1d6ca02d33ee7d861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8742473b404363e5c587f570d7e2f3b"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gae8742473b404363e5c587f570d7e2f3b">SCardEndTransaction</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, DWORD dwDisposition)</td></tr>
<tr class="memdesc:gae8742473b404363e5c587f570d7e2f3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ends a previously begun transaction.  <a href="group__API.html#gae8742473b404363e5c587f570d7e2f3b">More...</a><br /></td></tr>
<tr class="separator:gae8742473b404363e5c587f570d7e2f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18f33eebb45d9e0d2a091ca7a0511d26"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga18f33eebb45d9e0d2a091ca7a0511d26">SCardStatus</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, LPSTR mszReaderName, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)</td></tr>
<tr class="memdesc:ga18f33eebb45d9e0d2a091ca7a0511d26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current status of the reader connected to by <code>hCard</code>.  <a href="group__API.html#ga18f33eebb45d9e0d2a091ca7a0511d26">More...</a><br /></td></tr>
<tr class="separator:ga18f33eebb45d9e0d2a091ca7a0511d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33247d5d1257d59e55647c3bb717db24"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga33247d5d1257d59e55647c3bb717db24">SCardGetStatusChange</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext, DWORD dwTimeout, <a class="el" href="structSCARD__READERSTATE.html">SCARD_READERSTATE</a> *rgReaderStates, DWORD cReaders)</td></tr>
<tr class="memdesc:ga33247d5d1257d59e55647c3bb717db24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks execution until the current availability of the cards in a specific set of readers changes.  <a href="group__API.html#ga33247d5d1257d59e55647c3bb717db24">More...</a><br /></td></tr>
<tr class="separator:ga33247d5d1257d59e55647c3bb717db24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3454d4657110fd7f753b2d3d8f4e32f"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gac3454d4657110fd7f753b2d3d8f4e32f">SCardControl</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned)</td></tr>
<tr class="memdesc:gac3454d4657110fd7f753b2d3d8f4e32f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a command directly to the IFD Handler (reader driver) to be processed by the reader.  <a href="group__API.html#gac3454d4657110fd7f753b2d3d8f4e32f">More...</a><br /></td></tr>
<tr class="separator:gac3454d4657110fd7f753b2d3d8f4e32f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacfec51917255b7a25b94c5104961602"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gaacfec51917255b7a25b94c5104961602">SCardGetAttrib</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, DWORD dwAttrId, LPBYTE pbAttr, LPDWORD pcbAttrLen)</td></tr>
<tr class="memdesc:gaacfec51917255b7a25b94c5104961602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an attribute from the IFD Handler (reader driver).  <a href="group__API.html#gaacfec51917255b7a25b94c5104961602">More...</a><br /></td></tr>
<tr class="separator:gaacfec51917255b7a25b94c5104961602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga060f0038a4ddfd5dd2b8fadf3c3a2e4f"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga060f0038a4ddfd5dd2b8fadf3c3a2e4f">SCardSetAttrib</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, DWORD dwAttrId, LPCBYTE pbAttr, DWORD cbAttrLen)</td></tr>
<tr class="memdesc:ga060f0038a4ddfd5dd2b8fadf3c3a2e4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an attribute of the IFD Handler.  <a href="group__API.html#ga060f0038a4ddfd5dd2b8fadf3c3a2e4f">More...</a><br /></td></tr>
<tr class="separator:ga060f0038a4ddfd5dd2b8fadf3c3a2e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a2d77242a271310269065e64633ab99"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga9a2d77242a271310269065e64633ab99">SCardTransmit</a> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, const <a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a> *pioSendPci, LPCBYTE pbSendBuffer, DWORD cbSendLength, <a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a> *pioRecvPci, LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength)</td></tr>
<tr class="memdesc:ga9a2d77242a271310269065e64633ab99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an APDU to the smart card contained in the reader connected to by <a class="el" href="group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5" title="Establishes a connection to the reader specified in * szReader. ">SCardConnect()</a>.  <a href="group__API.html#ga9a2d77242a271310269065e64633ab99">More...</a><br /></td></tr>
<tr class="separator:ga9a2d77242a271310269065e64633ab99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93b07815789b3cf2629d439ecf20f0d9"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga93b07815789b3cf2629d439ecf20f0d9">SCardListReaders</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext, LPCSTR mszGroups, LPSTR mszReaders, LPDWORD pcchReaders)</td></tr>
<tr class="memdesc:ga93b07815789b3cf2629d439ecf20f0d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of currently available readers on the system.  <a href="group__API.html#ga93b07815789b3cf2629d439ecf20f0d9">More...</a><br /></td></tr>
<tr class="separator:ga93b07815789b3cf2629d439ecf20f0d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0522241e3180cb05dfd166e28930e961"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga0522241e3180cb05dfd166e28930e961">SCardFreeMemory</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext, LPCVOID pvMem)</td></tr>
<tr class="memdesc:ga0522241e3180cb05dfd166e28930e961"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases memory that has been returned from the resource manager using the <a class="el" href="pcsclite_8h.html#a67db0943aeb13f9f468eaae39b5ff1b0">SCARD_AUTOALLOCATE</a> length designator.  <a href="group__API.html#ga0522241e3180cb05dfd166e28930e961">More...</a><br /></td></tr>
<tr class="separator:ga0522241e3180cb05dfd166e28930e961"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d970d086d5218e080d0079d63f9d496"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga9d970d086d5218e080d0079d63f9d496">SCardListReaderGroups</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext, LPSTR mszGroups, LPDWORD pcchGroups)</td></tr>
<tr class="memdesc:ga9d970d086d5218e080d0079d63f9d496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of currently available reader groups on the system.  <a href="group__API.html#ga9d970d086d5218e080d0079d63f9d496">More...</a><br /></td></tr>
<tr class="separator:ga9d970d086d5218e080d0079d63f9d496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6">SCardCancel</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext)</td></tr>
<tr class="memdesc:gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels all pending blocking requests on the <a class="el" href="group__API.html#ga33247d5d1257d59e55647c3bb717db24" title="Blocks execution until the current availability of the cards in a specific set of readers changes...">SCardGetStatusChange()</a> function.  <a href="group__API.html#gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6">More...</a><br /></td></tr>
<tr class="separator:gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga722eb66bcc44d391f700ff9065cc080b"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__API.html#ga722eb66bcc44d391f700ff9065cc080b">SCardIsValidContext</a> (<a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> hContext)</td></tr>
<tr class="memdesc:ga722eb66bcc44d391f700ff9065cc080b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a <a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a> is valid.  <a href="group__API.html#ga722eb66bcc44d391f700ff9065cc080b">More...</a><br /></td></tr>
<tr class="separator:ga722eb66bcc44d391f700ff9065cc080b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa02e1f70d68a502cd92ed066c44542f"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#aaa02e1f70d68a502cd92ed066c44542f">SCardCheckDaemonAvailability</a> (void)</td></tr>
<tr class="memdesc:aaa02e1f70d68a502cd92ed066c44542f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the server is running.  <a href="#aaa02e1f70d68a502cd92ed066c44542f">More...</a><br /></td></tr>
<tr class="separator:aaa02e1f70d68a502cd92ed066c44542f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a994242ab48e4c06c98151daba4a98a54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a994242ab48e4c06c98151daba4a98a54"></a>
static char&#160;</td><td class="memItemRight" valign="bottom"><b>sharing_shall_block</b> = TRUE</td></tr>
<tr class="separator:a994242ab48e4c06c98151daba4a98a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ddcab38c4ff86a95a6de01fe418a4fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ddcab38c4ff86a95a6de01fe418a4fd"></a>
static <a class="el" href="structlist__t.html">list_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>contextMapList</b></td></tr>
<tr class="separator:a4ddcab38c4ff86a95a6de01fe418a4fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a5339bb356528ce056a2b3bfcc49444"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a5339bb356528ce056a2b3bfcc49444"></a>
static short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#a1a5339bb356528ce056a2b3bfcc49444">isExecuted</a> = 0</td></tr>
<tr class="memdesc:a1a5339bb356528ce056a2b3bfcc49444"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make sure the initialization code is executed only once. <br /></td></tr>
<tr class="separator:a1a5339bb356528ce056a2b3bfcc49444"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fcdb76a493df6af8c2c9983cf38437d"><td class="memItemLeft" align="right" valign="top">static pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#a5fcdb76a493df6af8c2c9983cf38437d">clientMutex</a> = PTHREAD_MUTEX_INITIALIZER</td></tr>
<tr class="memdesc:a5fcdb76a493df6af8c2c9983cf38437d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure that some functions be accessed in thread-safe mode.  <a href="#a5fcdb76a493df6af8c2c9983cf38437d">More...</a><br /></td></tr>
<tr class="separator:a5fcdb76a493df6af8c2c9983cf38437d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad70f4ad5a6e9b001970ee9afc2130875"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad70f4ad5a6e9b001970ee9afc2130875"></a>
static <a class="el" href="eventhandler_8h.html#a14acdf20e86897434649f849c17f9ea6">READER_STATE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#ad70f4ad5a6e9b001970ee9afc2130875">readerStates</a> [<a class="el" href="pcsclite_8h.html#af750e6e22c809de2b523c17e4a092036">PCSCLITE_MAX_READERS_CONTEXTS</a>]</td></tr>
<tr class="memdesc:ad70f4ad5a6e9b001970ee9afc2130875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Area used to read status information about the readers. <br /></td></tr>
<tr class="separator:ad70f4ad5a6e9b001970ee9afc2130875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adab4c71d794476093722cf81a0745234"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adab4c71d794476093722cf81a0745234"></a>
PCSC_API const <a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#adab4c71d794476093722cf81a0745234">g_rgSCardT0Pci</a> = { <a class="el" href="pcsclite_8h.html#a4fe95267c322c3bf35f30fab6b25526c">SCARD_PROTOCOL_T0</a>, sizeof(<a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a>) }</td></tr>
<tr class="memdesc:adab4c71d794476093722cf81a0745234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Protocol Control Information for T=0. <br /></td></tr>
<tr class="separator:adab4c71d794476093722cf81a0745234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb3d4853b4fee4c67f4fee2735d72661"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb3d4853b4fee4c67f4fee2735d72661"></a>
PCSC_API const <a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#acb3d4853b4fee4c67f4fee2735d72661">g_rgSCardT1Pci</a> = { <a class="el" href="pcsclite_8h.html#a3c09cd155e07044f857130c183d64f03">SCARD_PROTOCOL_T1</a>, sizeof(<a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a>) }</td></tr>
<tr class="memdesc:acb3d4853b4fee4c67f4fee2735d72661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Protocol Control Information for T=1. <br /></td></tr>
<tr class="separator:acb3d4853b4fee4c67f4fee2735d72661"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6352f4bd1a44362298665b06229b59a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6352f4bd1a44362298665b06229b59a"></a>
PCSC_API const <a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="winscard__clnt_8c.html#ac6352f4bd1a44362298665b06229b59a">g_rgSCardRawPci</a> = { <a class="el" href="pcsclite_8h.html#ab58a85ece18f4217fe5372981231d195">SCARD_PROTOCOL_RAW</a>, sizeof(<a class="el" href="structSCARD__IO__REQUEST.html">SCARD_IO_REQUEST</a>) }</td></tr>
<tr class="memdesc:ac6352f4bd1a44362298665b06229b59a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Protocol Control Information for raw access. <br /></td></tr>
<tr class="separator:ac6352f4bd1a44362298665b06229b59a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ac75190d70d571bca9915bef60491534a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static LONG SCardAddContext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a>&#160;</td>
          <td class="paramname"><em>hContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>dwClientID</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Functions for managing instances of <a class="el" href="group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67" title="Creates an Application Context to the PC/SC Resource Manager. ">SCardEstablishContext()</a> These functions keep track of Context handles and associate the blocking variable contextBlockStatus to an hContext. </p>
<p>Adds an Application Context to the vector <code><a class="el" href="struct__psContextMap.html" title="Represents the an Application Context on the Client side. ">_psContextMap</a></code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hContext</td><td>Application Context ID. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dwClientID</td><td>Client connection ID.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Error code. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SCARD_S_SUCCESS</td><td>Success (<a class="el" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_NO_MEMORY</td><td>There is no free slot to store <code>hContext</code> (<a class="el" href="pcsclite_8h.html#a81694393a1494d5091145734a2f0b36c">SCARD_E_NO_MEMORY</a>) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l03348">3348</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>References <a class="el" href="winscard__clnt_8c_source.html#l00320">_psContextMap::cancellable</a>, <a class="el" href="winscard__clnt_8c_source.html#l00316">_psContextMap::dwClientID</a>, <a class="el" href="winscard__clnt_8c_source.html#l00317">_psContextMap::hContext</a>, <a class="el" href="winscard__clnt_8c_source.html#l00318">_psContextMap::mMutex</a>, <a class="el" href="pcsclite_8h_source.html#l00112">SCARD_E_NO_MEMORY</a>, and <a class="el" href="pcsclite_8h_source.html#l00106">SCARD_S_SUCCESS</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00502">SCardEstablishContextTH()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa02e1f70d68a502cd92ed066c44542f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LONG SCardCheckDaemonAvailability </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the server is running. </p>
<p>If the server has been restarted we invalidate all the PC/SC handles. The client has to call <a class="el" href="group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67" title="Creates an Application Context to the PC/SC Resource Manager. ">SCardEstablishContext()</a> again.</p>
<dl class="section return"><dt>Returns</dt><dd>Error code. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SCARD_S_SUCCESS</td><td>Server is running (<a class="el" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_NO_SERVICE</td><td>Server is not running (<a class="el" href="pcsclite_8h.html#ad4729ab109ff490285d2ad881c04bee8">SCARD_E_NO_SERVICE</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_INVALID_HANDLE</td><td>Server was restarted or after fork() (<a class="el" href="pcsclite_8h.html#a05bdea2f2341e78d920885d1cc357676">SCARD_E_INVALID_HANDLE</a>) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l03622">3622</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>References <a class="el" href="pcsclite_8h_source.html#l00135">SCARD_E_NO_SERVICE</a>, and <a class="el" href="pcsclite_8h_source.html#l00106">SCARD_S_SUCCESS</a>.</p>

<p>Referenced by <a class="el" href="winscard__msg_8c_source.html#l00192">MessageReceiveTimeout()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l00447">SCardEstablishContext()</a>.</p>

</div>
</div>
<a class="anchor" id="aa86f1a8ccfbdbe7c64eea5219c7639e6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static LONG SCardEstablishContextTH </td>
          <td>(</td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>dwScope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPCVOID&#160;</td>
          <td class="paramname"><em>pvReserved1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPCVOID&#160;</td>
          <td class="paramname"><em>pvReserved2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPSCARDCONTEXT&#160;</td>
          <td class="paramname"><em>phContext</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a communication context to the PC/SC Resource Manager. </p>
<p>This function should not be called directly. Instead, the thread-safe function <a class="el" href="group__API.html#gaa1b8970169fd4883a6dc4a8f43f19b67" title="Creates an Application Context to the PC/SC Resource Manager. ">SCardEstablishContext()</a> should be called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dwScope</td><td>Scope of the establishment. This can either be a local or remote connection.<ul>
<li><a class="el" href="pcsclite_8h.html#a4476ec1c5ae384961f0f059fa28fb1dc">SCARD_SCOPE_USER</a> - Not used.</li>
<li><a class="el" href="pcsclite_8h.html#a82f7392ae7f5e6702940d7fc64854dc2">SCARD_SCOPE_TERMINAL</a> - Not used.</li>
<li><a class="el" href="pcscd_8h.html#a44e87b3c0cca8a029dd654f0432f34e8">SCARD_SCOPE_GLOBAL</a> - Not used.</li>
<li><a class="el" href="pcsclite_8h.html#a01ffeed2d7fac470371c79fa86b1e309">SCARD_SCOPE_SYSTEM</a> - Services on the local machine. </li>
</ul>
</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pvReserved1</td><td>Reserved for future use. Can be used for remote connection. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pvReserved2</td><td>Reserved for future use. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">phContext</td><td>Returned reference to this connection.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Connection status. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SCARD_S_SUCCESS</td><td>Successful (<a class="el" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_INVALID_PARAMETER</td><td><code>phContext</code> is null. (<a class="el" href="pcsclite_8h.html#a47a6da10ec4ea2cbebfcc4b2a93d786f">SCARD_E_INVALID_PARAMETER</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_INVALID_VALUE</td><td>Invalid scope type passed (<a class="el" href="pcsclite_8h.html#a9ece9fd9e68e4f802e16e951f8f2a642">SCARD_E_INVALID_VALUE</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_NO_MEMORY</td><td>There is no free slot to store <code>hContext</code> (<a class="el" href="pcsclite_8h.html#a81694393a1494d5091145734a2f0b36c">SCARD_E_NO_MEMORY</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_NO_SERVICE</td><td>The server is not running (<a class="el" href="pcsclite_8h.html#ad4729ab109ff490285d2ad881c04bee8">SCARD_E_NO_SERVICE</a>) </td></tr>
    <tr><td class="paramname">SCARD_F_COMM_ERROR</td><td>An internal communications error has been detected (<a class="el" href="pcsclite_8h.html#a93d3cf468d69423eab1d478a7a870408">SCARD_F_COMM_ERROR</a>) </td></tr>
    <tr><td class="paramname">SCARD_F_INTERNAL_ERROR</td><td>An internal consistency check failed (<a class="el" href="pcsclite_8h.html#a081a564acaf166f74592906f7dff2d86">SCARD_F_INTERNAL_ERROR</a>) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l00502">502</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>References <a class="el" href="winscard__msg_8c_source.html#l00116">ClientSetupSession()</a>, <a class="el" href="winscard__msg_8h_source.html#l00097">CMD_VERSION</a>, <a class="el" href="winscard__msg_8h_source.html#l00061">version_struct::major</a>, <a class="el" href="winscard__msg_8c_source.html#l00448">MessageReceive()</a>, <a class="el" href="winscard__msg_8c_source.html#l00314">MessageSendWithHeader()</a>, <a class="el" href="winscard__msg_8h_source.html#l00062">version_struct::minor</a>, <a class="el" href="winscard__msg_8h_source.html#l00052">PROTOCOL_VERSION_MAJOR</a>, <a class="el" href="winscard__msg_8h_source.html#l00054">PROTOCOL_VERSION_MINOR</a>, <a class="el" href="pcsclite_8h_source.html#l00110">SCARD_E_INVALID_PARAMETER</a>, <a class="el" href="pcsclite_8h_source.html#l00112">SCARD_E_NO_MEMORY</a>, <a class="el" href="pcsclite_8h_source.html#l00135">SCARD_E_NO_SERVICE</a>, <a class="el" href="winscard__msg_8h_source.html#l00081">SCARD_ESTABLISH_CONTEXT</a>, <a class="el" href="pcsclite_8h_source.html#l00125">SCARD_F_COMM_ERROR</a>, <a class="el" href="pcsclite_8h_source.html#l00106">SCARD_S_SUCCESS</a>, <a class="el" href="winscard__clnt_8c_source.html#l03348">SCardAddContext()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l03435">SCardGetContextTH()</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00447">SCardEstablishContext()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a3c749483d20ff887797b0879244699"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> * SCardGetContext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a>&#160;</td>
          <td class="paramname"><em>hContext</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the index from the Application Context vector <code><a class="el" href="struct__psContextMap.html" title="Represents the an Application Context on the Client side. ">_psContextMap</a></code> for the passed context. </p>
<p>This function is a thread-safe wrapper to the function <a class="el" href="winscard__clnt_8c.html#aafd00ba256e4ba8a81491c970ee336ed" title="Get the address from the Application Context list _psContextMap for the passed context. ">SCardGetContextTH()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hContext</td><td>Application Context whose index will be find.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index corresponding to the Application Context or -1 if it is not found. </dd></dl>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l03412">3412</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>References <a class="el" href="winscard__clnt_8c_source.html#l03435">SCardGetContextTH()</a>, <a class="el" href="winscard__clnt_8c_source.html#l00396">SCardLockThread()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l00406">SCardUnlockThread()</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l03225">SCardCancel()</a>, <a class="el" href="winscard__clnt_8c_source.html#l00780">SCardConnect()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03055">SCardFreeMemory()</a>, <a class="el" href="winscard__clnt_8c_source.html#l01737">SCardGetStatusChange()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03309">SCardIsValidContext()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03127">SCardListReaderGroups()</a>, <a class="el" href="winscard__clnt_8c_source.html#l02929">SCardListReaders()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l00654">SCardReleaseContext()</a>.</p>

</div>
</div>
<a class="anchor" id="aafd00ba256e4ba8a81491c970ee336ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="struct__psContextMap.html">SCONTEXTMAP</a> * SCardGetContextTH </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a>&#160;</td>
          <td class="paramname"><em>hContext</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the address from the Application Context list <code><a class="el" href="struct__psContextMap.html" title="Represents the an Application Context on the Client side. ">_psContextMap</a></code> for the passed context. </p>
<p>This functions is not thread-safe and should not be called. Instead, call the function <a class="el" href="winscard__clnt_8c.html#a8a3c749483d20ff887797b0879244699" title="Get the index from the Application Context vector _psContextMap for the passed context. ">SCardGetContext()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hContext</td><td>Application Context whose index will be find.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Address corresponding to the Application Context or NULL if it is not found. </dd></dl>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l03435">3435</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00502">SCardEstablishContextTH()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03412">SCardGetContext()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l03449">SCardRemoveContext()</a>.</p>

</div>
</div>
<a class="anchor" id="a1f7e1b05b30f1e5a5cd62b2f925222fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static LONG SCardLockThread </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Locks a mutex so another thread must wait to use this function. </p>
<p>Wrapper to the function pthread_mutex_lock(). </p>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l00396">396</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00447">SCardEstablishContext()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03412">SCardGetContext()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l00654">SCardReleaseContext()</a>.</p>

</div>
</div>
<a class="anchor" id="a7e3dc878020f1e5ccdae1a6914abd3b0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static LONG SCardRemoveContext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pcsclite_8h.html#a22530ffaff18b5d3e32260a5f1ce4abd">SCARDCONTEXT</a>&#160;</td>
          <td class="paramname"><em>hContext</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes an Application Context from a control vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hContext</td><td>Application Context to be removed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Error code. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SCARD_S_SUCCESS</td><td>Success (<a class="el" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a>) </td></tr>
    <tr><td class="paramname">SCARD_E_INVALID_HANDLE</td><td>The context <code>hContext</code> was not found (<a class="el" href="pcsclite_8h.html#a05bdea2f2341e78d920885d1cc357676">SCARD_E_INVALID_HANDLE</a>) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l03449">3449</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>References <a class="el" href="pcsclite_8h_source.html#l00109">SCARD_E_INVALID_HANDLE</a>, and <a class="el" href="winscard__clnt_8c_source.html#l03435">SCardGetContextTH()</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00654">SCardReleaseContext()</a>.</p>

</div>
</div>
<a class="anchor" id="a5dc8cab71db796c9e91329c22f4ebfa1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static LONG SCardUnlockThread </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unlocks a mutex so another thread may use the client. </p>
<p>Wrapper to the function pthread_mutex_unlock(). </p>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l00406">406</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

<p>Referenced by <a class="el" href="winscard__clnt_8c_source.html#l00447">SCardEstablishContext()</a>, <a class="el" href="winscard__clnt_8c_source.html#l03412">SCardGetContext()</a>, and <a class="el" href="winscard__clnt_8c_source.html#l00654">SCardReleaseContext()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a5fcdb76a493df6af8c2c9983cf38437d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t clientMutex = PTHREAD_MUTEX_INITIALIZER</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Ensure that some functions be accessed in thread-safe mode. </p>
<p>These function's names finishes with "TH". </p>

<p>Definition at line <a class="el" href="winscard__clnt_8c_source.html#l00354">354</a> of file <a class="el" href="winscard__clnt_8c_source.html">winscard_clnt.c</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 15 2014 11:57:56 for pcsc-lite by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>