Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 10, Code 43 e usbccgp do Windows
Como corrigir erros de vínculo de driver em dispositivo composto USB e Interface Association Descriptor (IAD). Cobre usbccgp.sys do Windows, Code 10, Code 43, descritores de interface e falhas parciais de enumeração.
Dispositivos compostos USB expõem várias funções através de um único dispositivo USB físico. Um único dispositivo pode fornecer controles HID, serial CDC, armazenamento em massa, diagnóstico vendor, áudio, vídeo e interfaces de update de firmware. Quando o vínculo de driver dá errado, o usuário vê "USB Composite Device driver error", "This device cannot start Code 10", "Code 43", "interface not working", "COM port missing" ou "uma função funciona e outra não".
Buscas como "USB composite device wrong driver", "Windows usbccgp Code 10", "USB interface driver not binding" e "IAD descriptor debugging" geralmente exigem evidência em nível de barramento. Só o estado de driver do Windows não mostra se os descritores descrevem as funções corretamente.
O Bus Scope ajuda porque o vínculo em composto é dirigido pelos descritores.
Como dispositivos compostos são estruturados
Um dispositivo composto contém um device descriptor e uma ou mais configurações. Dentro de uma configuração, ele expõe várias interfaces. Cada interface tem valores de class, subclass e protocol, além de endpoints.
Exemplo de funções:
- Interface 0: HID
- Interface 1: controle CDC
- Interface 2: dados CDC
- Interface 3: diagnóstico vendor-specific
O Windows usa o driver genérico pai de USB, geralmente usbccgp.sys, para enumerar funções filhas e vincular os drivers apropriados.
Interface Association Descriptor
O IAD agrupa várias interfaces em uma função. CDC ACM costuma usar uma interface de controle e uma interface de dados. Sem um IAD correto, o SO pode vinculá-las errado ou tratá-las como interfaces sem relação.
Sintomas de IAD errado:
- Porta COM serial CDC faltando.
- Função de áudio aparece parcialmente.
- Câmera UVC enumera, mas a interface de vídeo falha.
- Interface vendor rouba o driver errado.
- Só uma subfunção funciona.
Confira com cuidado os números de interface e os ranges do IAD.
Class codes e escolha de driver
O vínculo de driver depende dos class/subclass/protocol codes no nível de device ou interface. Um class code de device 0x00 significa que a classe é definida por interface. Um class code de device 0xEF é usado com frequência em dispositivos compostos com IAD.
Se o firmware declara o class code errado, o Windows pode escolher o driver errado.
Para dispositivos custom, seja deliberado:
- Interfaces HID devem descrever HID corretamente.
- Interfaces CDC devem casar com a expectativa CDC.
- Interfaces vendor-specific devem usar vendor class.
- Interfaces WinUSB podem precisar de descritores Microsoft OS.
Code 10 e Code 43
Code 10 e Code 43 são sintomas do SO, não causa raiz. O trace USB pode revelar se:
- O device descriptor foi lido.
- O configuration descriptor é válido.
- Os interface descriptors são consistentes.
- Os endpoint descriptors casam com a expectativa da interface.
- Descritores específicos de classe estão malformados.
- O driver emitiu uma class request que travou.
- O dispositivo resetou durante o vínculo.
Se a enumeração passa, mas uma class request falha, o problema é mais adiante do que a leitura básica do descritor.
Falha parcial do dispositivo
Dispositivos compostos podem funcionar parcialmente. Por exemplo, botões HID funcionam, mas o serial CDC não. Isso significa que o dispositivo não está simplesmente "morto". Significa que um caminho de interface falhou.
Preserve:
- Todos os interface descriptors.
- Descritores específicos de classe.
- Números de interface.
- Class requests do driver.
- Tráfego de endpoint da interface que falhou.
Checklist de depuração
Use este fluxo:
- Capture desde a conexão.
- Inspecione class, subclass e protocol no nível de device.
- Inspecione o comprimento total da configuração e a quantidade de interfaces.
- Inspecione cada interface descriptor.
- Inspecione os descritores de IAD e os ranges de interface.
- Inspecione descritores específicos de classe.
- Identifique qual interface falha ao vincular.
- Procure class requests travadas.
- Compare Windows, Linux e outra máquina Windows se necessário.
- Preserve os descritores antes de editar as capturas.
Diagnóstico final
Falhas de vínculo de driver em composto USB geralmente vêm de contratos de descritor: class codes, números de interface, agrupamento por IAD, descritores específicos de classe, descritores Microsoft OS ou class requests durante a inicialização do driver.
O Bus Scope ajuda a expor esses contratos para que um "USB Composite Device driver error" seja rastreado até a interface e a evidência de descritor exatas.
<!-- bus-scope-localized-transaction-foundation-v1:start -->Teste do contrato USB para “Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 10, Code 43 e usbccgp do Windows”
A resposta direta é que STALL, timeout ou reset não explica sozinho a causa. Primeiro prove que o provider vê o device correto; depois leia o contrato do transfer: tipo, direção, recipient, wValue, wIndex, comprimento declarado e real, status e estado anterior e posterior. Ligue a conclusão à primeira transação diferente do caso bom.
| Limite | Comparação | Decisão |
|---|---|---|
| Plataforma | provider, permissão, Root Hub ou usbmon/XHC20 | Os records são da conexão correta? |
| Setup | bmRequestType, bRequest, wValue, wIndex, wLength | O host enviou o pedido esperado? |
| Data | direção, comprimento e bytes retidos | O payload cumpre o contrato? |
| Status | ACK, STALL, timeout ou cancellation | Onde a transação termina? |
| Estado | configuration, interface, alternate setting, halt | O device estava pronto? |
Comece antes de reset e enumeration e preserve descriptors, SET_CONFIGURATION, SET_INTERFACE e o command anterior à falha. Filtro estreito pode esconder o control transfer decisivo. Execute uma ação USB por teste e altere apenas firmware, driver, porta, cabo, comando ou timing.
Como escrever resposta citável?
Informe request, campos setup, resposta e contexto anterior; depois proponha teste com uma variável. Bytes não retidos não provam packet loss. Proximidade entre command e reset mostra correlação, não causa sem repetição ou mudança de estado.
Mantenha VID/PID, firmware, speed, topologia, provider, filtro e trigger. Compare fases USB semânticas, não frame numbers entre usbmon e USBPcap. Registre início, fim, versão, OS, conexão e checksum. Consulte o troubleshooting Bus Scope.
Os owners Semrush continuam separados: free USB analyzer na página do produto, best USB protocol analyzer na comparação e USB descriptor viewer no guia descriptor. Não invente volume ou KD.
<!-- bus-scope-localized-transaction-foundation-v1:end --><!-- multilingual-blog-closeout:start -->Resposta direta e limite de aceitação
A resposta curta para “Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 10, Code 43 e usbccgp do Windows” é: Como corrigir erros de vínculo de driver em dispositivo composto USB e Interface Association Descriptor (IAD). Cobre usbccgp.sys do Windows, Code 10, Code 43, descritores de interface e falhas parciais de enumeração. Trate essa frase como um resultado a verificar, não como promessa para qualquer entrada, dispositivo, projeto ou ambiente. Um resultado completo registra estado inicial, ação exata, saída visível e condição que comprova a conclusão da tarefa no Bus Scope.
Procedimento orientado por evidências
Comece com um caso pequeno e repetível antes de alterar um projeto completo. Registre versão do aplicativo, sistema operacional, identidade da entrada ou dispositivo, configurações relevantes e resultado esperado. Execute uma ação deliberada, preserve a primeira transição inesperada e compare com um caso conhecido quando possível. Alterar vários controles ao mesmo tempo esconde qual condição criou ou corrigiu o problema.
Ponto de controle 1: Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 1
Para “Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 10, Code 43 e usbccgp do Windows”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 2: Como corrigir erros de vínculo de driver em dispositivo composto USB e Interface Associati
Encerre “Como corrigir erros de vínculo de driver em dispositivo composto USB e Interface Association Descriptor (IAD). Cobre usbccgp.sys do Windows, Code 10, ” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 3: Como dispositivos compostos são estruturados
Para “Como dispositivos compostos são estruturados”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 4: Interface Association Descriptor
Encerre “Interface Association Descriptor” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 5: Class codes e escolha de driver
Para “Class codes e escolha de driver”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 6: Code 10 e Code 43
Encerre “Code 10 e Code 43” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 7: Falha parcial do dispositivo
Para “Falha parcial do dispositivo”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 8: Checklist de depuração
Encerre “Checklist de depuração” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 9: Diagnóstico final
Para “Diagnóstico final”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 10: Teste do contrato USB para “Vínculo errado de driver em dispositivo composto USB: depuraçã
Encerre “Teste do contrato USB para “Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 10, Code 43 e usbccgp do Windows”” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Matriz de aceitação
| Ponto | Evidência a manter | Condição de aprovação |
|---|---|---|
| Vínculo errado de driver em dispositivo composto USB: depuração de interfaces, IAD, Code 10, Code 43 e usbccgp do Window | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Como corrigir erros de vínculo de driver em dispositivo composto USB e Interface Association Descriptor (IAD). Cobre usb | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Como dispositivos compostos são estruturados | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Interface Association Descriptor | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Class codes e escolha de driver | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Code 10 e Code 43 | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
Isolamento, recuperação e entrega
Pare no primeiro limite que falhar. Preserve fonte, projeto, sessão ou captura, duplique antes de edição destrutiva e altere uma variável por experimento. Repetir um fluxo amplo depois de várias mudanças pode gerar outro resultado sem explicar o motivo.
Separe ausência de evidência de evidência de ausência. Uma tela vazia pode indicar entrada, escopo, filtro, permissão, dispositivo, intervalo ou estado incorreto. Verifique aquisição ou importação antes de interpretar decoder, editor, relatório ou exportação.
Antes da entrega, reabra o artefato e examine início, ponto de decisão e final. Registre versão, plataforma, configuração, expectativa, observação e reprodução mínima. Remova ou oculte dados sensíveis e confirme a autorização do destinatário.
Perguntas e respostas
Qual é a maneira confiável mais rápida de começar?
Use o menor caso representativo, escreva o resultado esperado e altere uma variável. Confirme o caminho básico antes de adicionar filtros, efeitos, edições, automação ou uma fonte maior.
Quais evidências devem ser salvas?
Mantenha identidade da entrada, versão, plataforma, configurações, ação exata, primeira transição inesperada e saída final. Feche e reabra projeto, sessão, relatório ou exportação antes de tratá-lo como durável.
Quando o procedimento deve ser repetido?
Repita após mudanças relevantes no aplicativo, sistema, driver, firmware, modelo, fonte ou fluxo. Preserve o caso aceito anterior como referência sem alterações.
Quando a tarefa está pronta para entrega?
Quando outra pessoa autorizada identifica a entrada, repete a ação, vê o mesmo resultado, entende os limites restantes e abre o artefato sem depender de estado local não documentado.
Guias relacionados
Estas páginas no mesmo idioma cobrem etapas próximas sem alterar o proprietário canônico deste assunto:
- Depuração de dispositivo composto USB: números de interface, IAD, endpoints e vínculo de driver
- USB continua desconectando: depuração de loops de reset, eventos de energia e falhas de enumeração
- Depuração de Device Qualifier e Other Speed Configuration em USB: problemas de descritor entre high-speed e full-speed