Смарт-карты для службы Windows
В этом разделе для ИТ-специалистов и разработчиков интеллектуальных карта описывается, как служба смарт-карт для Windows (ранее называвшаяся Resource Manager смарт-карт) управляет средствами чтения и взаимодействия с приложениями.
Служба Смарт-карт для Windows предоставляет базовую инфраструктуру для всех остальных компонентов интеллектуального карта, так как она управляет интеллектуальными карта средствами чтения и взаимодействия с приложениями на компьютере. Он полностью соответствует спецификациям, заданным рабочей группой PC/SC. Сведения об этих спецификациях см. на веб-сайте спецификаций рабочей группы PC/SC.
Служба смарт-карт Windows выполняется в контексте локальной службы и реализуется как общая служба процесса узла служб (svchost). Служба "Смарт-карты для Windows" Scardsvr содержит следующее описание службы:
<serviceData
dependOnService="PlugPlay"
description="@%SystemRoot%\System32\SCardSvr.dll,-5"
displayName="@%SystemRoot%\System32\SCardSvr.dll,-1"
errorControl="normal"
group="SmartCardGroup"
imagePath="%SystemRoot%\system32\svchost.exe -k LocalServiceAndNoImpersonation"
name="SCardSvr"
objectName="NT AUTHORITY\LocalService"
requiredPrivileges="SeCreateGlobalPrivilege,SeChangeNotifyPrivilege"
sidType="unrestricted"
start="demand"
type="win32ShareProcess"
>
<failureActions resetPeriod="900">
<actions>
<action
delay="120000"
type="restartService"
/>
<action
delay="300000"
type="restartService"
/>
<action
delay="0"
type="none"
/>
</actions>
</failureActions>
<securityDescriptor name="ServiceXSecurity"/>
</serviceData>
<registryKeys buildFilter="">
<registryKey keyName="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr\Parameters">
<registryValue
name="ServiceDll"
value="%SystemRoot%\System32\SCardSvr.dll"
valueType="REG_EXPAND_SZ"
/>
<registryValue
name="ServiceMain"
value="CalaisMain"
valueType="REG_SZ"
/>
<registryValue
name="ServiceDllUnloadOnStop"
value="1"
valueType="REG_DWORD"
/>
</registryKey>
</registryKeys>
Примечание.
Для вызова winscard.dll в качестве правильного установщика класса INF-файл для средства чтения смарт-карта должен указать следующие значения в параметрах Class и ClassGUID:
Class=SmartCardReader
ClassGuid={50DD5230-BA8A-11D1-BF5D-0000F805F530}
По умолчанию служба настроена в ручном режиме. Создатели драйверов средства чтения смарт-карта должны настроить свои INF таким образом, чтобы служба запускалась автоматически, а файлы winscard.dll вызывают предопределенную точку входа для запуска службы во время установки. Точка входа определяется как часть класса SmartCardReader и не вызывается напрямую. Если устройство объявляет себя частью этого класса, точка входа автоматически вызывается для запуска службы при вставке устройства. Использование этого метода гарантирует, что служба будет включена при необходимости, но она также отключена для пользователей, которые не используют смарт-карты.
При запуске служба выполняет несколько функций:
- Он регистрирует себя для уведомлений службы.
- Он регистрируется для уведомлений Plug and Play (PnP), связанных с удалением и добавлением устройства.
- Он инициализирует кэш данных и глобальное событие, которое сигнализирует о запуске службы.
Примечание.
Для реализации смарт-карта рассмотрите возможность отправки всех сообщений в операционных системах Windows со средствами чтения смарт-карта через службу смарт-карт для Windows. Это обеспечивает интерфейс для отслеживания, выбора и взаимодействия со всеми драйверами, которые объявляют себя членами интеллектуальной карта группы устройств чтения.
Служба Смарт-карт для Windows классифицирует каждый слот средства чтения смарт-карта как уникальное средство чтения, и каждый слот также управляется отдельно, независимо от физических характеристик устройства. Служба смарт-карт для Windows обрабатывает следующие действия высокого уровня:
- Введение в устройство
- Инициализация чтения
- Уведомление клиентов о новых читателях
- Сериализация доступа к модулям чтения
- Интеллектуальный доступ к карта
- Туннелирование команд для чтения