Windows.Devices.Usb Spazio dei nomi

Questo spazio dei nomi definisce le classi Windows Runtime che un'app UWP può usare per comunicare con i dispositivi WinUSB. Questi dispositivi vengono gestiti dal driver di posta in arrivo winusb.sys e vengono identificati da un descrittore del sistema operativo Microsoft specifico.

Un dispositivo WinUSB valido avrà un ID compatibile di USB\MS_COMP_WINUSB

ID compatibili da Gestione dispositivi per il dispositivo SuperMUTT WinUSB

Supporto del dispositivo

Questo spazio dei nomi supporta la maggior parte dei dispositivi WinUSB. Tuttavia, non fornisce l'accesso ai dispositivi USB con le classi di dispositivo seguenti:

  • Audio (0x01)
  • HID (0x03)
  • Immagine (0x06)
  • Stampante (0x07)
  • Archiviazione di massa (0x08)
  • Smart Card (0x0B)
  • Audio/Video (0x10)
  • Controller wireless (0xE0)

Funzionalità del dispositivo USB

Un'app UWP che accede a un dispositivo USB deve includere dati specifici sulle funzionalità del dispositivo nel nodo delle funzionalità del manifesto. Questi dati identificano il dispositivo e il relativo scopo (o funzione). Si noti che alcuni dispositivi potrebbero avere più funzioni.

Da Windows 10, versione 1809 (aggiornamento di ottobre 2018)

<DeviceCapability Name="usb"/>

Prima di Windows 10, versione 1809 (aggiornamento di ottobre 2018)

Dal 1809, vendorId ProductId/ e tipo di funzione non devono più essere specificati e verranno ignorati nei sistemi più recenti. Se i sistemi di destinazione sono inferiori al 1809, vedere funzionalità del dispositivo USB legacy.

Risoluzione dei problemi

  • Verificare che la funzionalità USB (usb) sia nel manifesto dell'applicazione.
  • Verificare che l'utente abbia concesso l'autorizzazione per l'applicazione per l'uso dei dispositivi USB.
  • Verificare che il tipo di dispositivo non sia designato come inaccessibile.
  • I dispositivi interni del computer (DEVPKEY_Device_InLocalMachineContainer == TRUE) in genere non sono accessibili a meno che non sia in esecuzione in uno SKU con modalità incorporata e lowLevelDevices funzionalità.
  • I dispositivi con stack che contengono driver di filtro superiore/inferiore non sono in genere accessibili. Questi vengono talvolta aggiunti da terze parti per abilitare funzionalità aggiuntive per l'hardware personalizzato.
    • La restrizione del dispositivo è parzialmente determinata dall'enumerazione winusb.sys del dispositivo, che può impostare la proprietà DEVPKEY_DeviceInterface_Restricted dell'interfaccia del dispositivo su TRUE WinUSB Device Interface GUID_DEVINTERFACE_WINUSB_WINRT in base alla presenza di filtri di dispositivo/classe.
    • La presenza dei driver UpperFilter LowerFilter/ del dispositivo può essere determinata usando DeviceManager cercandoUpperFilters e LowerFilters proprietà.
    • La presenza di driver UpperFilter LowerFilter/ della classe WinUSB può essere determinata usando DeviceManager cercandoClass upper filters e Class lower filters proprietà.
    • Le proprietà dell'interfaccia dispositivo possono essere controllate chiamando CM_Get_Device_Interface_Property dove pszDeviceInterface è la stessa stringa passata a FromIdAsync.
  • Queste restrizioni possono essere ignorate quando si crea un dispositivo personalizzato usando lo sviluppatore driver per creare un'app di supporto hardware

Classi

UsbBulkInEndpointDescriptor

Descrittore dell'endpoint per un endpoint IN bulk USB. Il descrittore specifica il tipo di endpoint, la direzione, il numero e anche il numero massimo di byte che possono essere letti dall'endpoint, in un singolo trasferimento.

UsbBulkInPipe

Rappresenta la pipe aperta dal driver USB sottostante per comunicare con un endpoint USB bulk IN del dispositivo. L'app può ottenere un flusso di input dalla pipe e accedere ai dati vengono letti dall'endpoint.

UsbBulkOutEndpointDescriptor

Descrittore dell'endpoint per un endpoint USB bulk OUT. Il descrittore specifica il tipo di endpoint, la direzione, il numero e anche il numero massimo di byte che possono essere scritti nell'endpoint, in un singolo trasferimento.

UsbBulkOutPipe

Rappresenta la pipe aperta dal driver USB sottostante per comunicare con un endpoint USB bulk OUT del dispositivo. L'oggetto fornisce l'accesso a un flusso di output a cui l'app può scrivere dati da inviare all'endpoint.

UsbConfiguration

Fornisce informazioni su una configurazione USB, sui descrittori e sulle interfacce definite all'interno di tale configurazione. Per una spiegazione di una configurazione USB, vedere la sezione 9.6.3 nella specifica USB (Universal Serial Bus).

UsbConfigurationDescriptor

Deriva le informazioni dai primi 9 byte di un descrittore di configurazione USB. Le informazioni includono le funzionalità di alimentazione del dispositivo quando la configurazione è attiva e il numero di interfacce incluse in tale configurazione. Per una spiegazione di un descrittore di configurazione, sezione 9.6.3 Specifica del bus seriale universale. Per informazioni sui campi del descrittore, vedere:

  • Tabella 9.15 nella specifica universal serial bus 3.0
  • Tabella 9.10 nella specifica del bus seriale universale (versione 2.0)
UsbControlRequestType

Fornisce informazioni sul trasferimento del controllo USB, sul tipo di richiesta di controllo, sul fatto che i dati vengano inviati da o all'host e sul destinatario della richiesta nel dispositivo.

UsbDescriptor

Fornisce informazioni sul tipo di descrittore, sulle relative dimensioni ,in byte, e ottiene i dati del descrittore.

UsbDevice

Rappresenta un dispositivo USB. L'oggetto fornisce metodi e proprietà che un'app può usare per enumerare i dispositivi WinUSB e inviare trasferimenti di controllo IN e OUT.

UsbDeviceClass

Consente all'app di ottenere una stringa AQS (Advanced Query Syntax) specificando il codice della classe, il codice della sottoclasse e il codice del protocollo definito dal dispositivo. Le proprietà di questa classe vengono passate nella chiamata a GetDeviceClassSelector.

UsbDeviceClasses

Consente di recuperare un oggetto UsbDeviceClass in base alla classe di dispositivo USB di un dispositivo. Le proprietà definite in questa classe rappresentano le classi di dispositivi USB supportate e restituiscono oggetti UsbDeviceClass .

Per informazioni sulle classi di dispositivi USB, vedere il sito Web USB ufficiale per i documenti di specifica della classe approvata.

UsbDeviceDescriptor

Deriva le informazioni dal descrittore del dispositivo USB del dispositivo. Per una spiegazione del descrittore del dispositivo, vedere Tabella 9.8 nella specifica del bus seriale universale.

UsbEndpointDescriptor

Deriva le informazioni dal descrittore dell'endpoint USB, ad esempio tipo, direzione e numero di endpoint. Questo oggetto ottiene anche i descrittori specifici dell'endpoint in base al tipo di endpoint. Per una spiegazione di un descrittore dell'endpoint, vedere la sezione 9.6.5 nella specifica del bus seriale universale:

  • Tabella 9.18 nella specifica del bus seriale universale 3.0
  • Tabella 9.13 nella specifica del bus seriale universale (versione 2.0)
UsbInterface

Fornisce informazioni sull'interfaccia USB, inclusi i relativi endpoint, il numero di impostazioni alternative supportate dall'interfaccia e ottiene l'intero descrittore impostato per tali impostazioni. Ottiene anche pipe associate agli endpoint supportati dall'interfaccia.

UsbInterfaceDescriptor

Descrive un'impostazione alternativa USB (di un'interfaccia) in un descrittore di interfaccia. Per una spiegazione di un descrittore di interfaccia, vedere la sezione 9.6.5 nella specifica del bus seriale universale:

  • Tabella 9.15 nella specifica del bus seriale universale 3.0
  • Tabella 9.12 nella specifica del bus seriale universale (versione 2.0)
UsbInterfaceSetting

Fornisce informazioni su un'impostazione alternativa e selezionare tale impostazione. L'app può ottenere i descrittori dell'interfaccia USB per l'impostazione e i relativi endpoint e determinare se questa impostazione è attualmente selezionata.

UsbInterruptInEndpointDescriptor

Descrittore dell'endpoint per un endpoint USB interrupt IN. Il descrittore specifica il tipo di endpoint, la direzione, il numero e anche il numero massimo di byte che possono essere letti dall'endpoint, in un singolo trasferimento. L'app può anche ottenere informazioni sulla frequenza con cui l'host esegue il polling dell'endpoint per i dati.

UsbInterruptInEventArgs

Rappresenta l'oggetto passato come parametro al gestore eventi per l'evento DataReceived .

UsbInterruptInPipe

Rappresenta la pipe aperta dal driver USB sottostante per comunicare con un endpoint USB interrupt IN del dispositivo. L'oggetto consente anche all'app di specificare un gestore eventi. Gestore che viene richiamato quando i dati vengono letti dall'endpoint.

UsbInterruptOutEndpointDescriptor

Descrittore dell'endpoint per un endpoint di interruzione USB OUT. Il descrittore specifica il tipo di endpoint, la direzione, il numero e anche il numero massimo di byte che possono essere scritti nell'endpoint, in un singolo trasferimento. L'app può anche ottenere informazioni sulla frequenza con cui l'host esegue il polling dell'endpoint per inviare dati.

UsbInterruptOutPipe

Rappresenta la pipe aperta dal driver USB sottostante per comunicare con un endpoint USB interrupt OUT del dispositivo. L'oggetto fornisce l'accesso a un flusso di output in cui l'app può scrivere dati da inviare all'endpoint.

UsbSetupPacket

Descrive il pacchetto di installazione per un trasferimento di controllo USB. Per una spiegazione del pacchetto di installazione, vedere Tabella 9.2 nella specifica USB (Universal Serial Bus).

Enumerazioni

UsbControlRecipient

Definisce costanti che indicano il destinatario di un trasferimento di controllo USB. Il destinatario è definito nel pacchetto di installazione della richiesta di controllo. Vedere la tabella 9.2 della sezione 9.3 della specifica USB (Universal Serial Bus) (www.usb.org).

UsbControlTransferType

Definisce costanti che indicano il tipo di trasferimento del controllo USB: standard, classe o fornitore.

UsbEndpointType

Definisce costanti che indicano il tipo di endpoint USB: controllo, blocco, isochrono o interruzione.

UsbReadOptions

Definisce le costanti per i flag di configurazione che possono essere impostati per una pipe USB aperta dall'host per un endpoint IN bulk USB.

UsbTransferDirection

Definisce costanti che indicano la direzione del trasferimento USB: trasferimenti IN o OUT.

UsbWriteOptions

Definisce le costanti per i flag di configurazione che possono essere impostati per una pipe USB aperta dall'host per un endpoint USB OUT.

Vedi anche