Compartir a través de


Introducción al desarrollo de USB

Un dispositivo Universal Serial Bus (USB) define sus funcionalidades y características a través de configuraciones, interfaces, configuraciones alternativas y puntos de conexión. En este tema se proporciona información general de alto nivel de esos conceptos. Para obtener más información, consulte las especificaciones USB en Documentos universales de bus serie.

En esta sección

Tema Descripción
Diseño del dispositivo USB Un dispositivo USB define sus funcionalidades y características a través de configuraciones, interfaces, configuraciones alternativas y puntos de conexión. En este tema se proporciona información general de alto nivel de esos conceptos.
Descriptores USB estándar Un dispositivo USB proporciona información sobre sí misma en estructuras de datos denominadas descriptores USB. En esta sección se proporciona información sobre los descriptores de dispositivo, configuración, interfaz y punto de conexión y formas de recuperarlos de un dispositivo USB.
Puntos de conexión USB y sus canalizaciones Un dispositivo USB tiene puntos de conexión que se usan para las transferencias de datos. En el lado host, los puntos de conexión se representan mediante canalizaciones. Este tema diferencia entre esos dos términos.
USB en Windows: preguntas más frecuentes En este tema se presentan las preguntas más frecuentes para los desarrolladores de controladores que no están familiarizados con el desarrollo e integración de dispositivos USB y controladores con sistemas operativos Windows.

Escenarios USB comunes

1: obtenga el identificador del dispositivo para la comunicación y use el identificador recuperado o el objeto para enviar transferencias de datos.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:
WdfUsbTargetDeviceCreateWithParameters

UMDF:
IWDFUsbTargetDevice
UsbDevice

Conexión a un dispositivo USB
WinUsb_Initialize

Escritura de una aplicación de escritorio de Windows basada en la plantilla de WinUSB

Recuperación de descriptores USB para obtener información sobre las configuraciones del dispositivo, las interfaces, las configuraciones y sus puntos de conexión.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:

WdfUsbTargetDeviceGetDeviceDescriptor
WdfUsbTargetDeviceRetrieveConfigDescriptor

UMDF:

IWDFUsbTargetDevice::RetrieveDescriptor

Descriptores USB
UsbDevice.DeviceDescriptor
UsbConfiguration.Descriptors
UsbInterface.Descriptors
UsbInterfaceSetting.Descriptors

Obtención de descriptores USB
WinUsb_GetDescriptor
WinUsb_QueryInterfaceSettings
WinUsb_QueryPipe

Consulta del dispositivo para descriptores USB

2: configure el dispositivo para seleccionar una configuración USB activa y una configuración por interfaz.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:
WdfUsbTargetDeviceSelectConfig
WdfUsbTargetDeviceCreateUrb
USBD_SelectConfigUrbAllocateAndBuild
WdfUsbInterfaceSelectSetting

Cómo seleccionar una configuración para un dispositivo USB.

Cómo seleccionar una configuración alternativa en una interfaz USB.

UMDF:
No se admite la selección de configuración

IWDFUsbInterface::SelectSetting
UsbInterfaceSetting.SelectSettingAsync

Cómo seleccionar una configuración de interfaz USB
WinUsb_SetCurrentAlternateSetting

3: enviar transferencias de control para configurar el dispositivo y realizar comandos de proveedor específicos para un dispositivo determinado.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:
WdfUsbTargetDeviceSendControlTransferSynchronously
WdfUsbTargetDeviceFormatRequestForControlTransfer
USBD_SelectConfigUrbAllocateAndBuild

UMDF:
IWDFUsbTargetDevice::FormatRequestForControlTransfer

Cómo enviar una transferencia de control USB
SendControlInTransferAsync
SendControlOutTransferAsync

Cómo enviar una transferencia de control USB
WinUsb_ControlTransfer

Enviar transferencia de control al punto de conexión predeterminado

4: enviar transferencias masivas, normalmente usadas por dispositivos de almacenamiento masivo que transfieren una gran cantidad de datos.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:
WdfUsbTargetPipeReadSynchronously
WdfUsbTargetPipeWriteSynchronously
WdfUsbTargetPipeFormatRequestForRead
WdfUsbTargetPipeFormatRequestForWrite

Envío de solicitudes de transferencia masiva usb

Uso del lector continuo para leer datos desde una canalización USB

UMDF:
IUsbTargetPipeContinuousReaderCallbackReadComplete
IWDFUsbTargetPipe
IWDFUsbTargetPipe2
UsbBulkInPipe.InputStream
UsbBulkOutPipe.OutputStream

Envío de una solicitud de transferencia masiva USB
WinUsb_WritePipe
WinUsb_ReadPipe

Emitir solicitudes de E/S

5— Enviar transferencias de interrupción. Los datos se leen para recuperar datos de interrupción de hardware.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
Igual que las transferencias masivas UsbInterruptInPipe.DataReceived
UsbInterruptOutPipe.OutputStream

Envío de una solicitud de transferencia de interrupción USB
Igual que las transferencias masivas

6: enviar transferencias isócrónicas, que se usan principalmente para dispositivos de streaming multimedia.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:
WdfUsbTargetDeviceCreateIsochUrb

Transferencia de datos a puntos de conexión isócronos USB

UMDF:
No compatible
No compatible WinUsb_RegisterIsochBuffer
WinUsb_UnregisterIsochBuffer
WinUsb_WriteIsochPipeAsap
WinUsb_ReadIsochPipeAsap
WinUsb_WriteIsochPipe
WinUsb_ReadIsochPipe
WinUsb_GetCurrentFrameNumber
WinUsb_GetAdjustedFrameNumber

Envío de transferencias isócrónicas USB desde una aplicación de escritorio winUSB

7: suspensión selectiva USB para permitir que el dispositivo entre en un estado de bajo consumo y que el dispositivo vuelva al estado de trabajo.

Controlador de cliente Aplicación para UWP Aplicación de escritorio de Windows
KMDF:
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS
WdfDeviceAssignS0IdleSettings

UMDF:
IWDFUsbTargetDevice::SetPowerPolicy
IWDFDevice2::AssignS0IdleSettings
IWDFDevice3::AssignS0IdleSettingsEx

Envío de un dispositivo a una suspensión selectiva
No compatible WinUsb_SetPowerPolicy

Administración de energía winUSB

Consulte también