Windows.Devices.Usb Spazio dei nomi
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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 elowLevelDevices
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 suTRUE
WinUSB Device InterfaceGUID_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 cercando
UpperFilters
eLowerFilters
proprietà. - La presenza di driver UpperFilter LowerFilter/ della classe WinUSB può essere determinata usando DeviceManager cercando
Class upper filters
eClass lower filters
proprietà. - Le proprietà dell'interfaccia dispositivo possono essere controllate chiamando
CM_Get_Device_Interface_Property
dovepszDeviceInterface
è la stessa stringa passata a FromIdAsync.
- La restrizione del dispositivo è parzialmente determinata dall'enumerazione
- 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:
|
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:
|
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:
|
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. |