Windows store apps FindAllAsync can';在地面上找不到设备

Windows store apps FindAllAsync can';在地面上找不到设备,windows-store-apps,windows-8.1,Windows Store Apps,Windows 8.1,我已经编写了一个windows应用商店应用程序来测试通过WINUsb与设备的通信。它在开发型笔记本电脑(Windows8.1预览版,VS2013)上运行良好,但在表面上却不起作用 设备在设备管理器(在通用串行总线设备下)中按预期显示,但我的程序找不到它 我已经在地面上安装了VS2013进行测试。以下是一段代码片段: var selector=“System.Devices.InterfaceClassGuid:=”+“{DEE824EF-729B-4A0E-9C14-B7117D33A817}+

我已经编写了一个windows应用商店应用程序来测试通过WINUsb与设备的通信。它在开发型笔记本电脑(Windows8.1预览版,VS2013)上运行良好,但在表面上却不起作用

设备在设备管理器(在通用串行总线设备下)中按预期显示,但我的程序找不到它

我已经在地面上安装了VS2013进行测试。以下是一段代码片段:

var selector=“System.Devices.InterfaceClassGuid:=”+“{DEE824EF-729B-4A0E-9C14-B7117D33A817}+”和System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True和System.DeviceInterface.WinUsb.USBVendId:=1250和System.DeviceInterface.WinUsb.UsbProductId:=5136”;
ObservableCollection propertiesToRetrieve=新的ObservableCollection();
propertiesToRetrieve.Add(“System.Devices.InterfaceClassGuid”);
propertiesToRetrieve.Add(“System.Devices.ContainerId”);
var interfaces=wait DeviceInformation.findalsync(选择器,propertiesToRetrieve);
foreach(接口中的设备信息设备接口)
{
//device=wait UsbDevice.FromIdAsync(deviceInterface.Id);
var pt=deviceInterface.Properties.GetEnumerator();
while(pt.MoveNext())
{
如果(pt.Current.Value!=null)
tbMsg.Text+=string.Format(“{0}{1}”,(pt.Current.Key+“=”+pt.Current.Value),Environment.NewLine);
}
}
我尝试了“选择器”的不同变体,但仍然找不到该设备

有什么想法吗

非常感谢,


Cheri

AQS筛选器字符串需要与设备接口上的属性匹配。如果没有,设备信息对象将被过滤掉。显然,平板电脑表面的某些属性与其他电脑上的不同

我会请求您希望在过滤器选择器中使用的所有属性,删除选择器,或者删除子句,直到它找到您要查找的接口,然后查看属性

一旦您看到您试图查找的接口上有哪些属性值,然后从逻辑上计算过滤器。某些值必须与预期值不同


-Sam

您确定设备正在Windows RT上使用WinUSB驱动程序吗?您可能需要为它编写一个声明NTARM平台的自定义驱动程序。我使用的是Surface Pro…您应该在帖子中指定。“表面”和“表面2”通常表示RT版本。您可能仍然需要在Surface Pro上安装它们。这并不像听起来那么难。它基本上只需要在看到您的设备时将系统指向
winusb.sys