Windows Service용 스마트 카드
IT 전문가 및 스마트 카드 개발자를 위한 이 항목에서는 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}
기본적으로 서비스는 수동 모드로 구성됩니다. 스마트 카드 판독기 드라이버 작성자는 서비스를 자동으로 시작하고 winscard.dll 파일이 설치 중에 서비스를 시작하기 위해 미리 정의된 진입점을 호출하도록 INF를 구성해야 합니다. 진입점은 SmartCardReader 클래스의 일부로 정의되며 직접 호출되지 않습니다. 디바이스가 이 클래스의 일부로 자신을 보급하는 경우 진입점이 자동으로 호출되어 디바이스가 삽입될 때 서비스를 시작합니다. 이 메서드를 사용하면 필요할 때 서비스를 사용할 수 있지만 스마트 카드를 사용하지 않는 사용자도 사용할 수 없습니다.
서비스가 시작되면 다음과 같은 여러 함수를 수행합니다.
- 서비스 알림에 대해 자신을 등록합니다.
- 디바이스 제거 및 추가와 관련된 플러그 앤 플레이(PnP) 알림에 대해 자체 등록합니다.
- 해당 데이터 캐시 및 서비스가 시작되었음을 알리는 글로벌 이벤트를 초기화합니다.
참고
스마트 카드 구현의 경우 스마트 카드 for Windows 서비스를 통해 스마트 카드 판독기를 사용하여 Windows 운영 체제의 모든 통신을 보내는 것이 좋습니다. 스마트 카드 판독기 디바이스 그룹의 멤버임을 선언하는 모든 드라이버와 추적, 선택 및 통신할 수 있는 인터페이스를 제공합니다.
Windows용 스마트 카드 서비스는 각 스마트 카드 판독기 슬롯을 고유 판독기로 분류하고 각 슬롯은 디바이스의 물리적 특성에 관계없이 별도로 관리됩니다. Windows용 스마트 카드 서비스는 다음과 같은 고급 작업을 처리합니다.
- 디바이스 소개
- 읽기 권한자 초기화
- 클라이언트에 새 읽기 권한자 알림
- 읽기 권한자 액세스 직렬화
- 스마트 카드 액세스
- 판독기별 명령 터널링