이 항목에서는 디바이스에 사용자 지정 드라이버가 필요한지 여부를 결정하는 데 도움이 되는 디자인 고려 사항에 대해 설명합니다.
구현할 드라이버의 유형 결정
이 표에서는 디바이스에 대한 사용자 지정 드라이버를 개발하고 디바이스 액세스 API를 사용하여 통신해야 하는 경우와 Windows에서 제공하는 디바이스 스택을 대신 사용해야 하는 경우를 설명합니다.
| 지원하려면 | 이행 |
|---|---|
다음을 비롯한 잘 알려진 디바이스:
|
많은 유형의 잘 알려진 디바이스의 경우 Windows에는 드라이버와 Windows 간의 통신을 관리하는 API 및 클래스 확장 DDI(디바이스 드라이버 인터페이스)가 포함되어 있으므로 사용자 지정 드라이버가 필요하지 않습니다. 센서, 위치 및 WPD(Windows 이식 가능 디바이스) 디바이스는 이러한 지원을 제공하는 디바이스 클래스의 몇 가지 예입니다. 이러한 Windows 제공 DPI 중 하나를 사용하여 데이터 및 명령을 보내고 받는 드라이버를 빌드하는 경우 Windows 스토어 앱에서 디바이스 액세스 API를 사용하여 액세스를 조정하거나 I/O(입출력) 제어 코드를 드라이버에 직접 보낼 필요가 없습니다. Windows 스토어 앱이 디바이스 클래스에 Windows 런타임 API를 사용하여 잘 알려진 디바이스에 대한 액세스를 요청하는 경우 Windows 8은 디바이스 유형에 따라 디바이스 액세스를 처리합니다. 앱은 항상 개인 식별 정보를 공개하지 않는 잘 알려진 유형의 디바이스(예: 가속도계)에 액세스할 수 있습니다. 앱이 액세스하려면 먼저 애플리케이션 매니페스트에서 잘 알려진 다른 유형의 디바이스를 선언해야 합니다. 사용자는 위치, 웹캠 및 마이크 디바이스와 같은 중요한 정보를 표시하거나 모바일 광대역 디바이스와 같은 사용자 비용을 부담할 수 있는 디바이스에 액세스할 수 있는 권한을 앱에 부여해야 합니다. |
| MTP 서비스를 구현하는 WPD 디바이스입니다. |
MTP 클래스 드라이버를 사용하거나 WPD DDI를 사용하여 드라이버를 빌드할 수 있습니다. Windows 8은 MTP 디바이스 서비스를 지원합니다. 또한 앱은 windows.Devices.Portable Windows 런타임 API, COM(이식 가능한 디바이스 구성 요소 개체 모델) API 또는 WPD Automation과 사용하여 디바이스에 액세스할 수 있습니다. 앱은 디바이스 액세스 API를 사용할 필요가 없습니다. |
| Windows에서 제공하는 클래스 확장 또는 클래스 드라이버가 없는 디바이스입니다. |
이 경우 특수 디바이스에 대한 내부 디바이스 UWP 디바이스 앱을 참조하여 디바이스 액세스 API를 사용하여 사용자 지정 드라이버 액세스를 구현해야 하는지 여부를 확인합니다. |
보안 고려 사항
다음 문서에서는 보안 C++ 코드를 작성하기 위한 지침을 제공합니다.
- C++ 대한 보안 모범 사례
- [애플리케이션에 대한 패턴 & 사례 보안 지침]/previous-versions/msp-n-p/ff650760(v=pandp.10))
관련 항목
사용자 지정 드라이버 액세스 샘플, 내부 디바이스 대한 UWP 디바이스 앱, 하드웨어 개발자 센터