如何将 USB 设备功能添加到应用部件清单

本主题介绍了使用 Windows.Devices.Usb 命名空间的 Windows 应用商店应用所需的设备功能。

USB 设备功能的使用

USB 应用的应用包清单中必须包含某些设备功能才能指定与设备相关的重要信息。下面是所需的元素,按分层顺序排列:

<DeviceCapability>Name 属性必须为 "usb"。

<Device>Id 属性必须指定供应商/产品 ID,或者可以为 "any",以便允许访问任何与该函数类型相匹配的设备。

<Function>Type 属性可以指定设备类节点、名称或设备接口 GUID。

注意  无法在 Microsoft Visual Studio 2013 中修改 USB 设备功能。必须在“解决方案资源管理器”中右键单击 Package.appxmanifest 文件,然后选择“打开方式...”,再选择“XML (文本) 编辑器”。文件将以纯 XML 文档的格式打开。
<DeviceCapability Name="usb">
    <Device Id="vidpid:xxxx xxxx">
      <Function Type="classId:xx xx xx"/>
      <Function Type="name:xxxxx"/>
      <Function Type="winUsbId:xxxxx"/>
    </Device>
</DeviceCapability>

受支持的 USB 设备类

  • 受支持的设备类名称和代码值如下:

    • name:cdcControl, classId:02 * *
    • name:physical, classId:05 * *
    • name:personalHealthcare, classId:0f 00 00
    • name:activeSync, classId:ef 01 01
    • name:palmSync, classId:ef 01 02
    • name:deviceFirmwareUpdate, classId:fe 01 01
    • name:irda, classId:fe 02 00
    • name:measurement, classId:fe 03 *
    • name:vendorSpecific, classId:ff * *
    注意  属于 DeviceFirmwareUpdate 类的设备只能由经过该电脑 OEM 明确声明过的特权应用访问。
  • 因为这些都是未知接口,所以需要此应用才能为这些类代码指定供应商/产品 ID。

    • CDC (0x02)
    • CDC 数据 (0x0A)
    • 其他 (0xEF)
    • 应用程序特定 (0xFE)
    • 供应商特定 (0xFF)
  • 以下 USB 设备类不受支持:

    • 无效 类 (0x00)
    • 音频 类 (0x01)
    • HID 类 (0x03)
    • 图像 类 (0x06)
    • 打印机 类 (0x07)
    • 大容量存储 类 (0x08)
    • 智能卡 类 (0x0B)
    • 音频/视频 类 (0x10)
    • 无线控制器(如无线 USB 主机/集线器)(0xE0)

USB 设备功能示例

下面是几个定义 USB 设备功能的示例:

示例说明
<DeviceCapability Name="usb">
  <Device Id="any">
    <Function Type="classId:ef 01 01"/>
    <Function Type="name:stillImage"/>
  </Device>
</DeviceCapability>

允许应用访问任何设备上的任何 ActiveSync 或 StillImage 接口。 无需此应用即可指定供应商/产品标识符,因为这些都是已知的类类型。

<DeviceCapability Name="usb">
  <Device Id="vidpid:045e 930a">
    <Function Type="name:vendorSpecific"/>
  </Device>
</DeviceCapability>

允许应用访问 OSR USB Fx2 设备上的供应商特定接口。

<DeviceCapability Name="usb">
  <Device Id="vidpid:045e 930a">
    <Function Type="classId:ff * *"/>
  </Device>
</DeviceCapability>

允许应用访问其他版本的 OSR USB Fx2 设备上的供应商特定接口。注意 classId 的格式为:“ff * *”。类代码为“ff”,后面是一个通配符 (*),可包含任何子类和协议代码。

<DeviceCapability Name="usb">
  <Device Id=" vidpid:1234 5678">
    <Function Type="winUsbId:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"/>
  </Device>
</DeviceCapability>

允许应用访问具有设备接口 GUID,且该 GUID 是在 MS OS 描述符或设备 INF 中定义的设备。

在这种情况下,设备 ID 值不得为“any”。

 

CustomUsbDeviceAccess 示例的应用部件清单程序包

  <Capabilities>
      <!--When the device's classId is FF * *, there is a predefined name for the class. You can use the name instead of the class id. 
          There are also other predefined names that correspond to a classId.-->
      <m2:DeviceCapability Name="usb">
          <!--OSRFX2 Device-->
          <m2:Device Id="vidpid:0547 1002">
              <m2:Function Type="classId:ff * *"/>
              <!--<m2:Function Type="name:vendorSpecific"/>-->
          </m2:Device>
          <!--SuperMutt Device-->
          <m2:Device Id="vidpid:045E 0611">
              <!--<m2:Function Type="classId:ff * *"/>-->
              <m2:Function Type="name:vendorSpecific"/>
          </m2b:Device>
      </m2:DeviceCapability>
  </Capabilities>

相关主题

适用于 USB 设备的 Windows 应用商店应用

 

 

显示:
© 2015 Microsoft