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.
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.
4: enviar transferencias masivas, normalmente usadas por dispositivos de almacenamiento masivo que transfieren una gran cantidad de datos.
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 |