<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
span.EstiloCorreo17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ES link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hi PCSC lite Project people,<o:p></o:p></p><p class=MsoNormal> I’m developing a software that must work in Windows and Linux. And I found a difference between Windows PCSC API and “pcsc-lite” that may be a bug.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The software has several threads. In a thread a “SCardGetStatusChange” is performed and it locks until there is a change in the status.<o:p></o:p></p><p class=MsoNormal>When another thread performs a “SCardConnect”, in Windows the “SCardGetStatusChange” call returns with the “SCARD_STATE_INUSE”  flag activated. But in Linux the thread continues locked at “SCardGetStatusChange”. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><b><u>Windows trace:<o:p></o:p></u></b></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1: SmartCard SCardGetStatusChange(context: CD00000100000000, timeout: ffffffff)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:  atr = 3b 7f ffffff96 0 0 0 6a 46 4e 4d 54 3 4 11 43 4 30 3 ffffff90 0 <o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:  [0]   Dell Smart Card Reader Keyboard 0<o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:         user: null, state: 0xb0420, event: 0xb0422<o:p></o:p></span></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='color:#203864;mso-style-textfill-fill-color:#203864;mso-style-textfill-fill-alpha:100.0%'>Thread 2: SmartCard SCardConnect(context: CD00000100000001, share: 2, proto: 3, reader: 'Dell Smart Card Reader Keyboard 0')<o:p></o:p></span></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:  -> [0]  Dell Smart Card Reader Keyboard 0<o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:  ->       user: null, state: 0xb0420, event: 0xb0122<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#203864;mso-style-textfill-fill-color:#203864;mso-style-textfill-fill-alpha:100.0%'>Thread 2: SmartCard Connect successful: 1 hCard: EA00000100000000<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><b><u>Linux trace:<o:p></o:p></u></b></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1: SmartCard SCardGetStatusChange(context: CD00000100000000, timeout: ffffffff)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:  atr = 3b 7f ffffff96 0 0 0 6a 46 4e 4d 54 3 4 11 43 4 30 3 ffffff90 0 <o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:  [0]   Dell Smart Card Reader Keyboard 0<o:p></o:p></span></p><p class=MsoNormal><span style='color:#548235;mso-style-textfill-fill-color:#548235;mso-style-textfill-fill-alpha:100.0%'>Thread 1:         user: null, state: 0x20, event: 0x22<o:p></o:p></span></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='color:#2F5597;mso-style-textfill-fill-color:#2F5597;mso-style-textfill-fill-alpha:100.0%'>Thread 2:  SmartCard SCardConnect(context: CD00000100000001, share: 2, proto: 3, reader: 'Dell Smart Card Reader Keyboard 0')<o:p></o:p></span></p><p class=MsoNormal><span style='color:#2F5597;mso-style-textfill-fill-color:#2F5597;mso-style-textfill-fill-alpha:100.0%'>Thread 2:  SmartCard Connect successful: 1 hCard: EA00000100000000<o:p></o:p></span></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If I use another thread to perform another “SCardGetStatusChange”, the status shows the “SCARD_STATE_INUSE” flag activated, but the first thread is still locked.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks and best regards!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'><tr><td colspan=4 style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><b><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#7F7F7F'>Abraham Macías Paredes<o:p></o:p></span></b></p></td></tr><tr><td colspan=4 style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#7F7F7F'>Analista / Programador<o:p></o:p></span></p></td></tr><tr><td colspan=4 style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#7F7F7F'>Departamento de Desarrollo y Soluciones <o:p></o:p></span></p></td></tr><tr><td colspan=4 style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif'><a href="mailto:amacias@solutia-it.es">amacias@solutia-it.es</a><span style='color:#436581'><o:p></o:p></span></span></p></td></tr><tr><td colspan=4 style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'> <o:p></o:p></span></p></td></tr><tr><td rowspan=2 valign=top style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'><img border=0 width=20 height=200 style='width:.2083in;height:2.0833in' id="_x0000_i1025" src="cid:image001.gif@01D21588.C6F2C460"><o:p></o:p></span></p></td><td width=350 colspan=2 valign=top style='width:262.5pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'><a href="http://solutia-it.es/" title="Ir a la Web de Solutia"><span style='color:blue;text-decoration:none'><img border=0 width=280 height=85 style='width:2.9166in;height:.8854in' id="_x0000_i1026" src="cid:image002.gif@01D21588.C6F2C460" alt="Ir a la Web de                   Solutia"></span></a><o:p></o:p></span></p></td><td width="100%" rowspan=2 valign=top style='width:100.0%;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'><img border=0 width=200 height=200 style='width:2.0833in;height:2.0833in' id="_x0000_i1027" src="cid:image003.gif@01D21588.C6F2C460"><o:p></o:p></span></p></td></tr><tr><td width=50 style='width:37.5pt;padding:.75pt .75pt .75pt .75pt'></td><td width=310 style='width:232.5pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><strong><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'>Solutia Innovaworld Technologies S.L.</span></strong><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'><br>Parque empresarial Los Llanos<br>C/ Extremadura, 108 - 41909 - Salteras (Sevilla)<br>T: +34 955 11 11 55<br>F: +34 954 37 11 42<br><a href="http://www.solutia-it.es"><span style='color:#F05801'>www.solutia-it.es</span></a><o:p></o:p></span></p></td></tr><tr><td colspan=2 rowspan=2 style='padding:.75pt .75pt .75pt .75pt'></td><td colspan=2 style='padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:8.5pt;font-family:"Arial",sans-serif;color:#436581'><a href="http://solutia-it.es/calidad/" title="Ver                 Certificaciones de Calidad de Solutia"><span style='color:blue;text-decoration:none'><img border=0 width=300 height=90 style='width:3.125in;height:.9375in' id="_x0000_i1028" src="cid:image004.jpg@01D21588.C6F2C460" alt="Ver                   Certificaciones de Calidad de Solutia"></span></a><o:p></o:p></span></p></td></tr><tr><td colspan=2 style='padding:.75pt .75pt .75pt .75pt'><p><span style='font-size:7.0pt;font-family:"Arial",sans-serif;color:#7F7F7F'>Sus datos personales contenidos en esta comunicación han sido recogidos de los contactos mantenidos por Vd. o por personas de su entorno, con personal de SOLUTIA INNOVAWORLD TECHNOLOGIES, S.L. y han sido incorporados al fichero de GESTIÓN COMERCIAL con la finalidad de realizar la gestión, seguimiento y mantenimiento de nuestra relación comercial, o a otro fichero correspondiente al tipo de relación que mantiene con nosotros, de lo que Vd. fue convenientemente informado al recibir bien el documento contractual entregado al inicio de los contactos bien en una comunicación inmediatamente posterior en que se daba cumplimiento al derecho de información y se le solicitaba consentimiento para tratar sus datos personales, tratamiento que se efectuará de acuerdo a las finalidades allí expresadas.<o:p></o:p></span></p><p><span style='font-size:7.0pt;font-family:"Arial",sans-serif;color:#7F7F7F'>En el caso en que ésta sea la primera comunicación que recibe por nuestra parte, le solicitamos su consentimiento para proceder al tratamiento de sus datos de acuerdo a las condiciones detalladas al inicio. Entenderemos que nos presta su consentimiento si en el plazo de un mes a contar desde la recepción de esta comunicación no nos expresa su voluntad en contra. Le informamos que puede revocar en cualquier momento su consentimiento respondiendo a este mail indicando que no desea recibir más información acerca de nuestra empresa, supuesto en el que será automáticamente dado de baja de nuestra lista de correo.<o:p></o:p></span></p><p><span style='font-size:7.0pt;font-family:"Arial",sans-serif;color:#7F7F7F'>Podrá ejercer sus derechos de acceso, rectificación, cancelación y oposición ante el Responsable del fichero, SOLUTIA INNOVAWORLD TECHNOLOGIES, S.L. en la dirección C/ Extremadura, 108 Parque empresarial Los Llanos; 41909 Salteras, SEVILLA, indicando en la comunicación la referencia "LOPD"<o:p></o:p></span></p></td></tr><tr height=0><td width=22 style='border:none'></td><td width=38 style='border:none'></td><td width=244 style='border:none'></td><td width=404 style='border:none'></td></tr></table><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>