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

Mob*_*ion 6 c++ windows winapi openni windows-store-apps

好的,首先我要指出我对Windows Apps开发是全新的,这很好,因为我正在尝试为PC开发Windows应用商店应用程序以使用通过USB连接的PrimeSense扫描仪.我也问过这个更具体的问题在这里.

这次我有一个更通用的问题,它与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>
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

ant*_*duh 1

您无法通过 Metro 应用程序执行此操作。

通常,您可以通过使用该对象管理器路径作为要“创建”的文件调用 CreateFile 来创建该 USB 设备的句柄。Metro 应用程序中不允许使用CreateFile - “仅限桌面应用程序” - 并且它的“替代品”CreateFile2 特别不允许打开对象管理器对象。

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

另请参阅Social.msdn 上的这篇文章

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