Windows.Devices.Usb Espacio de nombres

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

Identificadores compatibles de Administrador de dispositivos para el dispositivo WinUSB de SuperMUTT

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 y lowLevelDevices 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 propiedad DEVPKEY_DeviceInterface_RestrictedTRUE de interfaz de dispositivo en en la interfaz GUID_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 buscandoUpperFilters 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 donde pszDeviceInterface es la misma cadena que se pasaría a FromIdAsync.
  • 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:

  • Tabla 9.15 en la especificación Universal Serial Bus 3.0
  • Tabla 9.10 en la especificación de bus serie universal (versión 2.0)
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:

  • Tabla 9.18 de la especificación universal de Bus serie 3.0
  • Tabla 9.13 en la especificación universal de bus serie (versión 2.0)
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:

  • Tabla 9.15 de la especificación Universal Serial Bus 3.0
  • Tabla 9.12 en la especificación de bus serie universal (versión 2.0)
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.

Consulte también