Compartir a través de


Configuración del Registro USB para un controlador de controlador de función

Los OEM deben establecer varios valores del Registro para asegurarse de que su dispositivo enumera con los metadatos correctos cuando se conecta a un equipo. Estos valores especifican descriptores de configuración y dispositivo para los controladores del lado del dispositivo USB en Windows. Los OEM que crean e incluyen sus propias interfaces deben establecer valores de registro adicionales para que sus interfaces se carguen y usen.

Las claves del Registro relacionadas con los controladores USB del lado del dispositivo están en: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN

En este tema se describe la configuración de la clave anterior y las subclaves que definen los descriptores de dispositivo, configuración e interfaz para el dispositivo.

Clave del Registro USBFN

La información de configuración del dispositivo USB se encuentra en el registro en: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN

En esta tabla se describen sus subcarpetas. Algunos de ellos se pueden modificar mediante oem. En las secciones siguientes se proporciona más información sobre los valores admitidos para cada sub clave.

Subclave Descripción
Alternativas Esta subclave contiene subclaves adicionales que describen una interfaz que tiene una o varias configuraciones alternativas.
Asociaciones Esta sub clave define descriptores de asociación de interfaz (IAD). Cada IAD permite agrupar varias interfaces en una sola función. Cada sub clave representa un IAD y los OEM diferentes pueden modificar los valores de esas sub-claves.
Valor predeterminado Esta subclave contiene valores predeterminados que se usan para describir la configuración específica del dispositivo, como vid y PID. Se trata de una sub clave propiedad de Microsoft cuyos valores se reemplazan por los de la clave primaria.
Configuraciones Esta sub clave contiene subcarpetas adicionales que contienen valores de descriptor de configuración que se usan durante la enumeración USB. Por ejemplo, la configuración de prueba estándar podría existir en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\TestConfig.
Configuraciones\Valor predeterminado Se trata de una subtarea propiedad de Microsoft. Contiene valores para la configuración predeterminada. Las interfaces de la configuración predeterminada se agregan antes de la configuración actual presente cuando el valor IncludeDefaultCfg se establece en 1 en la claveHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN .
Interfaces Esta sub clave contiene subcarpetas adicionales que describen descriptores de interfaz específicos. Por ejemplo, la dirección IP a través de la interfaz USB puede residir en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces\IpOverUsb. El nombre de la subclase de la interfaz también se usa como identificador de hardware del dispositivo secundario USBFN para cargar el controlador de clase USBFn. En el ejemplo de IP sobre USB, el identificador de hardware del dispositivo secundario USBFN será USBFN\IpOverUsb.

En esta tabla se describen los valores que los OEM pueden definir en la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN . Los valores que no están definidos en esta clave asumen los valores predeterminados definidos por Microsoft en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Default.

Todos los OEM deben establecer los valores idVendor, idProduct, ManufacturerString y ProductString . Los OEM que crean y agregan sus propias interfaces también deben establecer CurrentConfiguration en el nombre de la sub clave en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations que incluya sus interfaces en InterfaceList.

Valor Tipo Propietario Descripción
IncludeDefaultCfg REG_DWORD OEM Se establece en 1 cuando los OEM desean incluir las interfaces de la configuración predeterminada, como IpOverUsb o MTP.
idVendor REG_DWORD OEM Identificador del proveedor del descriptor de dispositivo que se envía al host durante la enumeración.
idProduct REG_DWORD OEM Identificador de producto del descriptor de dispositivo que se envía al host durante la enumeración.
ManufacturerString REG_SZ OEM Cadena de fabricante que se envía al host para identificar el fabricante del dispositivo.
ProductString REG_SZ OEM Cadena que describe el dispositivo como un producto. El valor predeterminado es Windows 10 Mobile Dispositivo. Este valor se usa como nombre para mostrar del dispositivo en la interfaz de usuario del equipo conectado. Los OEM deben asegurarse de que este valor coincide con el valor del valor PhoneModelName en la sub clave DeviceTargetingInfo.
iSerialNumber REG_DWORD OEM Si este valor se establece en 0, el dispositivo no tiene un número de serie. Si este valor es distinto de cero o no existe, el número de serie se genera de forma única por dispositivo.
CurrentConfiguration REG_SZ OEM Esta cadena debe corresponder al nombre de una sub clave de configuración. Esta cadena determina qué configuración se va a usar para crear un descriptor de configuración para la enumeración de dispositivos USB.
ClassEndpointRequestEnabled REG_DWORD OEM Establézcalo en 1 cuando desee indicar que se aceptan solicitudes de punto de conexión de clase. Las solicitudes de punto de conexión de clase no se aceptan de forma predeterminada. Establezca en 0 (o no establezca este valor del Registro) cuando desee indicar que las solicitudes de punto de conexión de clase no se aceptan o solo se aceptan para interfaces específicas. Consulte el valor ClassEndpointRequestEnabled en la sección clave del Registro USBFN\Interfaces para obtener información sobre cómo aceptar solicitudes de punto de conexión de clase para interfaces específicas.

Clave del Registro USBFN\Configurations

En esta tabla se describen los valores que los OEM pueden definir para las sub claves en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations. Cada subtarea representa una configuración USB diferente. Si el OEM quiere crear su propia interfaz, el OEM debe definir una nueva configuración que contenga las interfaces que se van a usar. Para ello, cree una sub clave en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations que use el nombre de la configuración y rellene la sub clave con los valores de esta tabla. Además, para que el controlador USB use la nueva configuración, el valor CurrentConfiguration (descrito en la tabla anterior) debe establecerse en el nombre de la sub clave de configuración.

Valor Tipo Propietario Descripción
InterfaceList REG_MULTI_SZ OEM o Microsoft Contiene una lista de nombres de interfaz que corresponden a sub-claves de interfaz en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces, las asociaciones de IAD definidas en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associationsy las interfaces alternativas definidas en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates. Estas claves determinan las interfaces que se usan para describir el descriptor de configuración compuesto.

Si el valor IncludeDefaultCfg de la claveHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN se establece en 1, esta lista se anexa a la lista de interfaz predeterminada propiedad de Microsoft para crear la lista de interfaz completa que el dispositivo usará para enumerar.
MSOSCompatIdDescriptor REG_BINARY OEM o Microsoft Opcional. Define un descriptor de características del sistema operativo de compatibilidad extendida para la configuración. Si el valor IncludeDefaultCfg de la claveHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN se establece en 1, las funciones de este descriptor se anexan a las funciones e interfaces de la configuración predeterminada.

Clave del Registro USBFN\Interfaces

En esta tabla se describen los valores que los OEM pueden modificar para las sub-claves en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces.

Cada sub-clave representa una interfaz USB diferente. Para definir una interfaz, cree una sub-clave en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces con el nombre de la interfaz y rellénela con los valores de la tabla siguiente. Además, solo se incluirá una interfaz si la interfaz forma parte de InterfaceList de CurrentConfiguration.

Valor Tipo Propietario Descripción
InterfaceDescriptor REG_BINARY OEM o Microsoft Representación binaria de un descriptor de interfaz que se va a enviar al host durante la enumeración USB. La pila de funciones USB rellena automáticamente los valores bInterfaceNumber e iInterface después de compilar un descriptor de configuración completo para evitar conflictos con otros descriptores de interfaz.
InterfaceGUID REG_SZ OEM o Microsoft GUID que identifica de forma única una interfaz en el bus.
InterfaceNumber REG_DWORD OEM o Microsoft Opcional. Este valor se usa para asignar un número fijo de interfaz a una función. Los números de interfaz 0-1F están reservados para funciones heredadas, 20-3F están reservados para Microsoft y 40-5F están reservados para su uso por los OEM.
MSOSExtendedPropertyDescriptor REG_BINARY OEM o Microsoft Opcional. Define un descriptor de características del sistema operativo de propiedad extendida para la interfaz.
ClassEndpointRequestEnabled REG_DWORD OEM Este valor del Registro solo es válido cuando HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\ClassEndpointRequestEnabled no está presente o se establece en 0. Establezca este valor del Registro en 1 cuando desee indicar que se aceptan solicitudes de punto de conexión de clase para esta interfaz. Establézcalo en 0 (o no establezca este valor del Registro) cuando desee indicar que no se aceptan solicitudes de punto de conexión de clase para esta interfaz.

Clave del Registro USBFN\Alternates

La sub clave alternativa se usa para definir una sola interfaz que tenga una o varias interfaces alternativas. En esta tabla se describen los valores que los OEM pueden modificar para las sub-claves en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates.

Cada sub-clave representa una interfaz diferente. Para definir una interfaz con valores alternativos, cree una subclave en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates mediante el nombre de la interfaz y rellénela con los valores de la tabla siguiente.

Valor Tipo Propietario Descripción
InterfaceList REG_MULTI_SZ OEM o Microsoft Lista de dos de más nombres de interfaz que corresponden a interfaces definidas en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces. Esa clave define colectivamente una interfaz con una configuración alternativa. La primera interfaz corresponde a la configuración alternativa 0, la segunda interfaz corresponde a la configuración alternativa 1, etc.
InterfaceNumber REG_DWORD OEM o Microsoft Opcional. Este valor se usa para asignar un número fijo de interfaz a una función. Los números de interfaz 0-1F están reservados para funciones heredadas, 20-3F están reservados para Microsoft y 40-5F están reservados para su uso por los OEM.
MSOSExtendedPropertyDescriptor REG_BINARY OEM o Microsoft Opcional. Define un descriptor de características del sistema operativo de propiedad extendida para la interfaz.

Clave del Registro USBFN\Associations

Los OEM pueden especificar asociaciones definiendo descriptores de asociación de interfaz (IAD). Cada IAD permite agrupar varias interfaces en una sola función. En esta tabla se describen los valores que los OEM pueden modificar para las sub-claves en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations.

Cada subtarea representa un IAD diferente. Para definir una asociación, cree una sub-clave en HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations mediante el nombre del IAD y rellénela con los valores de la tabla siguiente.

Valor Tipo Propietario Descripción
InterfaceList REG_MULTI_SZ OEM o Microsoft Lista de interfaces o interfaces alternativas asociadas a una función USB. Si el tamaño de la lista es inferior a 2, la pila del controlador de función no se carga. Otras funciones o interfaces continúan cargando.
bFunctionClass REG_DWORD OEM o Microsoft El código de clase de la función, establecido en 02.
bFunctionSubClass REG_DWORD OEM o Microsoft El código de subclase de la función, establecido en 0d.
bFunctionProtocol REG_DWORD El código de protocolo de la función, establecido en 01.
MSOSExtendedPropertyDescriptor REG_BINARY OEM o Microsoft Opcional. Define un descriptor de características del sistema operativo de propiedad extendida para la interfaz.

MirrorLink es un estándar de interoperabilidad que permite la integración entre dispositivos móviles y sistemas de información de automóviles. El dispositivo debe exponer una interfaz NCM CDC USB al cliente MirrorLink. Como dispositivo de clase de dispositivo de comunicaciones (CDC), es necesario describir las interfaces de datos mediante un descriptor de asociación de interfaz (IAD) o un descriptor de unión de funciones CDC.

Para habilitar la conectividad MirrorLink en Windows 10 Mobile dispositivo, el OEM debe realizar estos cambios para exponer un IAD.

  • Cree una asociación para las interfaces de comunicación y datos mediante un Descriptor de asociación de interfaz (IAD) estableciendo los valores del Registro que se muestran en la tabla anterior.

  • Además de la configuración del Registro, establezca este valor del Registro en un valor distinto de cero.

    Valor Tipo Propietario Descripción
    MirrorLink REG_DWORD OEM o Microsoft Un valor distinto de cero indica que la interfaz admite MirrorLink. La pila de funciones USB no detiene el comando USB MirrorLink.
  • Los descriptores específicos de clase se pueden incluir en el conjunto de descriptores de interfaz que se define en el Registro. El campo de tamaño debe establecerse en esos descriptores para que la pila del controlador de función USB pueda analizarlos con precisión.

Como alternativa, un descriptor de unión de funciones CDC también se puede definir como descriptor de interfaz de Class-Specific; Sin embargo, los números de interfaz especificados por el descriptor union son estáticos y no se asignan mediante la pila del controlador de función USB, y la presencia de un descriptor union no hace que las interfaces descritas por ella estén asociadas a un único PDO secundario. Se requiere un IAD para esa asociación.