无法访问Windows应用商店内的USB设备

时间:2014-06-23 11:59:37

标签: c++ windows winapi windows-store-apps openni

好的,首先我要指出我是Windows Apps开发的新手,这很好,因为我正在尝试为PC开发Windows应用商店应用程序以使用通过USB连接的PrimeSense扫描仪。我已经就此here提出了一个更具体的问题。

这次我有一个更通用的问题,它与Windows应用商店应用开发更相关。我正在使用VS2013 Express并为Win32编译。

当我编译VS2012的应用程序并将其作为可执行文件运行时,我可以完美地连接到扫描仪。但我不能对VS2013做同样的事情并将其作为Store应用程序运行。

我知道设备已连接且驱动程序已更新,所有dll文件都放在Widnows System 32目录中。 我还在App Manifest中添加了所有功能,并添加了以下设备功能

 <m2:DeviceCapability Name="usb">
  <!--OSRFX2 Device-->
  <m2:Device Id="vidpid:1d27 0609">
    <m2:Function Type="classId:ff * *" />
    <m2:Function Type="name:vendorSpecific" />
  </m2:Device>
</m2:DeviceCapability>

vid和pid显然与设备的相应代码匹配。

尝试使用OpenNI连接扫描仪时收到的错误之一是:

Could not open to "\\?\usb#vid_1d27&pid_0609&mi_00#7&1601586a&0&0000#{c3b5f022-5a42-1980-1909-ea72095601b1}" USB Device not found

这个错误非常令人沮丧,因为我知道设备已连接。所以我倾向于认为游戏的Windows应用程序端存在一些级别的操作系统特性,这使得我无法连接到设备。正如我所说,我正在为Win32编译。

驱动程序是否有可能无法用于Windows应用商店应用。我应该在Windows Store App逻辑中做一些额外的事情,我没有这样做,这是连接USB设备所必需的吗?对不起,我是Windows Store App开发的新手。

谢谢。

1 个答案:

答案 0 :(得分:1)

你不能从metro应用程序那样做。

您通常通过调用CreateFile并使用object mananger path作为'create'文件来创建该usb设备的句柄。地铁应用中CreateFilenot allowed - 仅限“桌面应用” - 其“替换”CreateFile2,特别是不允许打开对象管理器对象。

  

此外,CreateFile2的文档指出,在metro应用程序中,此功能只能打开文件和目录(而不是管道,邮件槽,控制台等)。

另见this post on social.msdn

除非我错过了什么,否则我认为这是不可能的。