Windows.Devices.Usb Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Este espacio de nombres define Windows Runtime clases que una aplicación para UWP puede usar para comunicarse con dispositivos WinUSB. Estos dispositivos se controlan mediante el controlador de bandeja de entrada winusb.sys
y se identifican mediante un descriptor de sistema operativo específico de Microsoft.
Un dispositivo WinUSB válido tendrá un identificador compatible de USB\MS_COMP_WINUSB
Compatibilidad con dispositivos
Este espacio de nombres admite la mayoría de los dispositivos WinUSB. Sin embargo, no proporciona acceso a dispositivos USB con clases de dispositivo de lo siguiente:
- Audio (
0x01
) - HID (
0x03
) - Imagen (
0x06
) - Impresora (
0x07
) - Almacenamiento masivo (
0x08
) - Tarjeta inteligente (
0x0B
) - Audio/vídeo (
0x10
) - Controlador inalámbrico (
0xE0
)
Funcionalidades del dispositivo USB
Una aplicación para UWP que tenga acceso a un dispositivo USB debe incluir datos específicos de funcionalidad del dispositivo en el nodo de funcionalidades de su manifiesto. Estos datos identifican el dispositivo y su propósito (o función). Tenga en cuenta que algunos dispositivos pueden tener varias funciones.
Desde Windows 10, versión 1809 (actualización de octubre de 2018)
<DeviceCapability Name="usb"/>
Antes de Windows 10, versión 1809 (actualización de octubre de 2018)
Desde 1809, ya no es necesario especificar vendorId ProductId/ y el tipo de función y se omitirán en los sistemas más recientes. Si el destino de los sistemas es inferior a 1809, consulte funcionalidades heredadas del dispositivo USB.
Solución de problemas
- Compruebe que la funcionalidad USB (
usb
) está en el manifiesto de aplicación. - Compruebe que el usuario ha concedido permiso para que la aplicación use dispositivos USB.
- Valide que el tipo de dispositivo no esté designado como inaccesible.
- Por lo general, los dispositivos internos de la máquina (
DEVPKEY_Device_InLocalMachineContainer == TRUE
) no son accesibles a menos que se ejecuten en una SKU con el modo incrustado ylowLevelDevices
la funcionalidad. - Los dispositivos con pilas que contienen controladores de filtro superior o inferior no suelen ser accesibles. A veces, los terceros agregan estos elementos para habilitar la funcionalidad adicional para el hardware personalizado.
- La restricción de dispositivos viene determinada parcialmente por
winusb.sys
durante la enumeración de dispositivos, que puede establecer la propiedadDEVPKEY_DeviceInterface_Restricted
TRUE
de interfaz de dispositivo en en la interfazGUID_DEVINTERFACE_WINUSB_WINRT
de dispositivo WinUSB en función de la presencia de filtros de dispositivo o clase. - La presencia de controladores UpperFilter LowerFilter/ del dispositivo se puede determinar mediante DeviceManager buscando
UpperFilters
propiedades y .LowerFilters
- La presencia de controladores UpperFilter LowerFilter/ de la clase WinUSB se puede determinar mediante DeviceManager buscando
Class upper filters
propiedades y .Class lower filters
- Las propiedades de la interfaz de dispositivo se pueden inspeccionar llamando a
CM_Get_Device_Interface_Property
dondepszDeviceInterface
es la misma cadena que se pasaría a FromIdAsync.
- La restricción de dispositivos viene determinada parcialmente por
- Estas restricciones se pueden omitir al realizar un dispositivo personalizado trabajando con el desarrollador de controladores para crear una aplicación de soporte técnico de hardware.
Clases
UsbBulkInEndpointDescriptor |
Descriptor de punto de conexión para un punto de conexión USB bulk IN. El descriptor especifica el tipo de punto de conexión, la dirección, el número y también el número máximo de bytes que se pueden leer desde el punto de conexión, en una única transferencia. |
UsbBulkInPipe |
Representa la canalización que abre el controlador USB subyacente para comunicarse con un punto de conexión USB bulk IN del dispositivo. La aplicación puede obtener un flujo de entrada de la canalización y los datos de acceso se leen desde el punto de conexión. |
UsbBulkOutEndpointDescriptor |
Descriptor de punto de conexión para un punto de conexión de salida masiva USB. El descriptor especifica el tipo de punto de conexión, la dirección, el número y también el número máximo de bytes que se pueden escribir en el punto de conexión, en una única transferencia. |
UsbBulkOutPipe |
Representa la canalización que abre el controlador USB subyacente para comunicarse con un punto de conexión USB bulk OUT del dispositivo. El objeto proporciona acceso a un flujo de salida en el que la aplicación puede escribir datos para enviarlos al punto de conexión. |
UsbConfiguration |
Proporciona información sobre una configuración USB, sus descriptores y las interfaces definidas dentro de esa configuración. Para obtener una explicación de una configuración USB, consulte sección 9.6.3 en la especificación del bus serie universal (USB). |
UsbConfigurationDescriptor |
Deriva información de los primeros 9 bytes de un descriptor de configuración USB. La información incluye las funcionalidades de energía del dispositivo cuando la configuración está activa y el número de interfaces incluidas en esa configuración. Para obtener una explicación de un descriptor de configuración, Sección 9.6.3 Especificación de bus serie universal. Para obtener información sobre los campos de descriptor, consulte:
|
UsbControlRequestType |
Proporciona información sobre la transferencia de control USB, el tipo de solicitud de control, si los datos se envían desde o al host, y el destinatario de la solicitud en el dispositivo. |
UsbDescriptor |
Proporciona información sobre el tipo de descriptor, su tamaño (en bytes) y obtiene los datos del descriptor. |
UsbDevice |
Representa un dispositivo USB. El objeto proporciona métodos y propiedades que una aplicación puede usar para enumerar dispositivos WinUSB y enviar transferencias de control IN y OUT. |
UsbDeviceClass |
Proporciona una manera de que la aplicación obtenga una cadena de sintaxis de consulta avanzada (AQS) especificando el código de clase, el código de subclase y el código de protocolo definido por el dispositivo. Las propiedades de esta clase se pasan en la llamada a GetDeviceClassSelector. |
UsbDeviceClasses |
Proporciona una manera de recuperar un objeto UsbDeviceClass basado en la clase de dispositivo USB de un dispositivo. Las propiedades definidas en esta clase representan las clases de dispositivo USB admitidas y devuelven objetos UsbDeviceClass . Para obtener información sobre las clases de dispositivos USB, consulte el sitio web USB oficial para documentos de especificación de clase aprobadas. |
UsbDeviceDescriptor |
Deriva información del descriptor de dispositivo USB del dispositivo. Para obtener una explicación del descriptor de dispositivo, consulte la tabla 9.8 en la especificación de bus serie universal. |
UsbEndpointDescriptor |
Deriva información del descriptor del punto de conexión USB del punto de conexión, como el tipo, la dirección y el número de punto de conexión. Este objeto también obtiene los descriptores de punto de conexión específicos en función del tipo de punto de conexión. Para obtener una explicación de un descriptor de punto de conexión, consulte la sección 9.6.5 en la especificación del bus serie universal:
|
UsbInterface |
Proporciona información sobre la interfaz USB, incluidos sus puntos de conexión, el número de configuraciones alternativas que admite la interfaz y obtiene todo el conjunto de descriptores para esa configuración. También obtiene canalizaciones asociadas a los puntos de conexión que admite la interfaz. |
UsbInterfaceDescriptor |
Describe una configuración alternativa USB (de una interfaz) en un descriptor de interfaz. Para obtener una explicación de un descriptor de interfaz, vea sección 9.6.5 en la especificación de bus serie universal:
|
UsbInterfaceSetting |
Proporciona información sobre una configuración alternativa y selecciona esa configuración. La aplicación puede obtener los descriptores de interfaz USB para la configuración y sus puntos de conexión, y determinar si esta configuración está seleccionada actualmente. |
UsbInterruptInEndpointDescriptor |
Descriptor de punto de conexión para un punto de conexión de interrupción USB IN. El descriptor especifica el tipo de punto de conexión, la dirección, el número y también el número máximo de bytes que se pueden leer desde el punto de conexión, en una sola transferencia. La aplicación también puede obtener información sobre la frecuencia con la que el host sondea el punto de conexión para los datos. |
UsbInterruptInEventArgs |
Representa el objeto que se pasa como parámetro al controlador de eventos para el evento DataReceived . |
UsbInterruptInPipe |
Representa la canalización que abre el controlador USB subyacente para comunicarse con un punto de conexión DE interrupción USB del dispositivo. El objeto también permite a la aplicación especificar un controlador de eventos. Ese controlador que se invoca cuando se leen los datos desde el punto de conexión. |
UsbInterruptOutEndpointDescriptor |
Descriptor de punto de conexión para un punto de conexión out de interrupción USB. El descriptor especifica el tipo de punto de conexión, la dirección, el número y también el número máximo de bytes que se pueden escribir en el punto de conexión, en una única transferencia. La aplicación también puede obtener información sobre la frecuencia con la que el host sondea el punto de conexión para enviar datos. |
UsbInterruptOutPipe |
Representa la canalización que abre el controlador USB subyacente para comunicarse con un punto de conexión DE interrupción USB del dispositivo. El objeto proporciona acceso a un flujo de salida al que la aplicación puede escribir datos para enviarlos al punto de conexión. |
UsbSetupPacket |
Describe el paquete de instalación para una transferencia de control USB. Para obtener una explicación del paquete de instalación, consulte la tabla 9.2 en la especificación del bus serie universal (USB). |
Enumeraciones
UsbControlRecipient |
Define constantes que indican el destinatario de una transferencia de control USB. El destinatario se define en el paquete de instalación de la solicitud de control. Consulte la tabla 9.2 de la sección 9.3 de la especificación del bus serie universal (USB) (www.usb.org). |
UsbControlTransferType |
Define constantes que indican el tipo de transferencia de control USB: estándar, clase o proveedor. |
UsbEndpointType |
Define constantes que indican el tipo de punto de conexión USB: control, bulk, isochronous o interrupt. |
UsbReadOptions |
Define constantes para las marcas de configuración que se pueden establecer para una canalización USB que el host abre para un punto de conexión USB bulk IN. |
UsbTransferDirection |
Define constantes que indican la dirección de la transferencia USB: transferencias IN o OUT. |
UsbWriteOptions |
Define constantes para marcas de configuración que se pueden establecer para una canalización USB que el host abre para un punto de conexión USB OUT. |