2016-09-10 5 views
3

Ich habe diesen Code:UsbDevice.FromIdAsync gibt null zurück

private async void OnDeviceAdded(DeviceWatcher watcher, DeviceInformation deviceInformation) 
    { 
     if (deviceInformation.Name.StartsWith("ClearShot") && deviceInformation.IsEnabled) 
     { 

      targetDevice = await UsbDevice.FromIdAsync(deviceInformation.Id); 
      OnConnected(EventArgs.Empty); 

     } 

    } 

Dies ist eigentlich ein Ereignis, das von einem DeviceWatcher Das Problem genannt wird, ist, dass targetDevice immer null ist.

Keine Abstürze, nichts, es ist nur null, ändert sich nicht. Warum?

Edit: Das ist die Sache, die ich im Manifest haben:

<DeviceCapability Name="usb"> 
    <Device Id="vidpid:184c 0001"> 
     <Function Type="classId:ff * *"/> 
    </Device> 
</DeviceCapability> 
+0

Haben Sie [USB-Funktionen hinzufügen zum Manifest] (https://msdn.microsoft.com/de-de s/library/windows/hardware/dn303351 (v = V.85) .aspx)? –

+0

' ' Nicht sicher, ob das ist, richtig oder nicht obwohl. – Ahmad45123

+0

Wie bekomme ich die ClassID und solche Informationen? – Ahmad45123

Antwort

1

Ich stelle fest, nur für den Speicher, dass es nach UsbDevice.FromIdAsync man sollte die folgende überprüfen null ist:

  1. Präsenz des Gerätes mit WinUSB Treiber im Geräte-Manager.

  2. Präsenz von Multistring-Parameter DeviceInterfaceGUIDs mit generierten GUID in der Registry

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_184C&PID_0001\8000013\Device Parameters] 
    "DeviceInterfaceGUIDs"=hex(7):7b,00,32,00,34,00,42,00,35,00,37,00,46,00,34,00,\ 
    37,00,2d,00,41,00,37,00,41,00,43,00,2d,00,34,00,46,00,41,00,32,00,2d,00,39,\ 
    00,43,00,31,00,33,00,2d,00,32,00,38,00,36,00,42,00,30,00,33,00,34,00,46,00,\ 
    
  3. Gegenwart geeigneter DeviceCapability in Package.appxmanifest

    <Capabilities> 
        <DeviceCapability Name="usb"> 
         <Device Id="vidpid:184C 0001"> 
         <Function Type="classId:ff * *" /> 
         <Function Type="name:vendorSpecific" /> 
         </Device> 
        </DeviceCapability> 
    

0

ich das Problem gefunden, das WinUSB Treiber, die Windows für mich installiert aus irgendeinem Grund nicht erfolgreich war, hatte ich eine andere installieren ein.