适用于内部设备的 UWP 设备应用
此主题介绍 UWP 设备应用访问内部设备的方式。 内部设备是驻留在电脑机箱内或与电脑机箱集成的设备。
本主题中提及的某些 API 也可用于访问外部设备。 本主题重点介绍访问内部设备。 有关每个 API 的详细信息,请参阅 Windows API 参考。
访问内部设备
UWP 应用可通过三种方式访问内部设备:
建议? | API | 开发人员 | 是否需要设备元数据? |
---|---|---|---|
是 | 设备方案 API(图像捕获、扫描等) | 所有开发人员 | 否 |
是 | 设备协议 API(USB、HID 等) | OEM | 是(仅适用于内部设备) |
否 | 自定义驱动程序访问 | OEM | 是 |
设备方案 API
Windows 运行时提供多个 API,用于访问内置或连接到电脑的常见设备,例如用于图像捕获、扫描、打印和使用运动传感器的 API。 由于这些 API 在设计时考虑了特定方案,因此它们称为设备方案 API。 设备方案 API 可供所有开发人员使用,无需使用任何设备元数据。 有关方案 API 的详细信息,请参阅集成设备。
超出设备方案 API 提供范围的任何访问都仅限于 OEM(或与 OEM 合作的组件供应商),并且需要系统容器的设备元数据。
设备协议 API
当 OEM/组件供应商需要以方案 API 无法满足的方式访问内部设备时,他们可以使用设备协议 API。 设备协议 API 是 Windows 运行时 API,UWP 应用可使用它访问 USB 和人机接口设备 (HID)。 访问类型因 API 而异。
设备协议 API | 命名空间 | 访问类型 |
---|---|---|
USB | Windows.Devices.Usb | 独占读取和独占写入 |
HID | Windows.Devices.HumanInterfaceDevice | 共享读取和独占写入 |
要访问仅使用 Microsoft 类驱动程序(设备协议 API 最常见的用途)的外围设备,则不需要设备元数据。 但是,要使用这些 API 访问内部设备,则需要元数据。 访问内部设备时,必须在设备元数据中将应用指定为系统容器的特权应用。 此要求可限制对 OEM 的内部设备访问。
有关详细信息,请参阅:
自定义驱动程序访问
当 OEM 或 IHV 无法使用设备协议 API 访问其(内部或外围)设备时,应首先联系 Microsoft,与 Windows 生态系统团队讨论其方案。 在某些情况下,经 Microsoft 批准后,UWP 设备应用可以直接访问自定义驱动程序。
自定义驱动程序访问需要设备元数据。 要访问自定义驱动程序,必须在设备元数据中将应用指定为外围设备或系统容器的特权应用。 有关自定义驱动程序访问的详细信息,请参阅电脑内部专用设备的 UWP 设备应用设计指南。
组件供应商
组件供应商可与 OEM 合作,为其内部设备开发 UWP 设备应用。 这可以通过以下几种方式进行:
组件供应商开发和分发应用:在这种情况下,组件供应商拥有、开发和分发访问内部设备的应用和驱动程序。 OEM 拥有设备元数据。
OEM 开发和分发应用:在这种情况下,OEM 开发并分发应用,该应用可访问来自不同组件供应商的一个或多个内部设备。 OEM 最终负责应用开发、应用分发和设备元数据维护。 组件供应商拥有驱动程序。
有关这些工作流程的详细信息,请参阅电脑内部专用设备的 UWP 设备应用设计指南。