سؤال

أنا أكتب خدمة Windows التي يجب أن تتعامل مع قراء البطاقات الذكية.

في كثير من الأحيان ، عندما أحاول الاتصال ببطاقة ذكية مدرجة ، SCardConnect() فشل مع SCARD_E_SHARING_VIOLATION وهو ما يعني أساسًا:

لا يمكن الوصول إلى البطاقة الذكية بسبب الاتصالات القائمة الأخرى.

عادلة بما فيه الكفاية.

أعتقد أن عملية أخرى على الأقل تحاول الوصول إلى الذكية في نفس الوقت. ولكن هل هناك طريقة لتحديد العملية (ES)؟

هل كانت مفيدة؟

المحلول

في مكانك سأحاول مع عملية المستكشف للنظر في مقابض الملف التي تم فتحها بواسطة تطبيقك إذا قمت بالوصول إلى قراء البطاقات الذكية. للقيام بذلك ، يجب عليك تحديد عمليتك والضغط Ctrl-H (قائمة "عرض"/"عرض الجزء المنخفض"/"Handes"). بعد أن تعرف اسم جهاز قراء البطاقات الذكية ، ستتمكن من معرفة ذلك عمليات أخرى تستخدم الجهاز إذا تلقيت SCARD_E_SHARING_VIOLATION خطأ. يجب أن تستخدم فقط Ctrl-F (قائمة "البحث"/"البحث عن مقبض أو DLL ...") للعثور على مقبض الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top