Compartilhar via


USB Host Controller Driver Registry Settings

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Este tópico contém informações sobre o seguinte configurações Registro:

  • Módulo HCD
  • Driver controlador hospedar USB

Controle como os drivers do dispositivo USB sejam carregados chaves do Registro. Quando um dispositivo USB estiver anexado, o módulo driver USB carrega o apropriado driver de dispositivo USB para controle desse dispositivo, com base em informações configuração e interface descritor do dispositivo de. O módulo driver USB localiza o driver correto usando um conjunto de chaves Registro, que controlar tanto os drivers de dispositivos. As chaves Registro são armazenadas como subchaves da HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients chave.

Este método do carregamento fornece uma estrutura flexível que permite que os drivers para ser carregado em contextos diferentes, depending on o intervalo dos dispositivos que eles sejam capazes ao controle. Por exemplo, você pode decidir incluir um genérico driver classe que pode controle dispositivos uma ampla range of USB. Entretanto, você pode ter um driver para um dispositivo USB específico dentro dessa classe que é mais eficiente ou funciona melhor do que o genérico driver classe. Neste maiúsculas e minúsculas, seu driver pôde controle um subconjunto dos dispositivos que a genérico controles driver classe, permitindo outros dispositivos continuar a ser controlada pelo genérico driver. A estrutura das LoadClients chave define uma estrutura em que os programadores pode especificar prioridade driver em detalhes ótima.

A seguinte tabela mostra exemplos dos contextos que podem causar específicos USB dispositivo drivers para carregar.

Contexto Exemplo

Para coincidir com cada dispositivo que está conectado ao barramento.

Um driver que exibe um ícone em barra de tarefas do sistema é carregada para controle cada dispositivo USB conectado ao sistema. O driver propositadamente falha a USBDeviceAttach chamar após obtenção de informações de dispositivo e o módulo driver USB continuará procurando por um driver para controle de dispositivo.

Aa930186.note(pt-BR,WinEmbedded.60).gifNote:
Somente um driver desse tipo pode ser registrado no sistema.

Para coincidir com um identificador Vendor-Specific.

Um identificador Vendor-Specific coincide com os dispositivos USB que não se enquadram em qualquer classe atualmente definido ou fornece um driver avançada para um determinado dispositivo USB.

Aa930186.note(pt-BR,WinEmbedded.60).gifNote:
Microsoft não recomenda que você faça isso para uso geral drivers que talvez possa para controle dispositivos de múltiplo desenvolvedores.

Para dispositivos controle de uma classe dispositivo específico.

Você grava um driver de dispositivo USB controle todos os dispositivos classe HID.

Aa930186.note(pt-BR,WinEmbedded.60).gifNote:
O USB Implementers Forum tenha definido outras classes dispositivo, incluindo as comunicações, áudio e armazenamento em massa.

Para controle cada interface em um dispositivo.

Uma unidade USB CD-ROM com um áudio interface possui separar os drivers para cada interface, que é comum com CD-ROM unidades que podem Play áudio de CD-ROMs.

Aa930186.note(pt-BR,WinEmbedded.60).gifNote:
Esse contexto é o melhor para carregar drivers dispositivo USB, pois permite que dispositivos compostos que exigem múltiplo drivers para operar sem reconfiguração adicional.

O chave do Registro para driver de dispositivo um USB deve ser parte de seu arquivo Platform.reg ou ser criada quando um driver de dispositivo USB é instalado. No tempo instalação, a chave pode ser criada tanto por um aplicativo instalação ou do driver USBInstallDriver função. USBInstallDriver deve criar as chaves indiretamente, por chamado de LPREGISTER_CLIENT_SETTINGS função, em vez de chamar o APIs de Registro. Instalação por USBInstallDriver Ocorre quando um não reconhecido dispositivo USB está conectado ao barramento e o módulo driver USB consultas um usuário para o nome de driver de dispositivo DLL. O módulo driver USB, em seguida, carrega o driver e chamadas seu USBInstallDriver função.

A forma tem subchaves para cada driver Group1_ID\Group2_ID\Group3_ID\DriverName. Cada uma das subchaves identificador GRUPO pode ser nomeado Padrão Para indicar que a driver de dispositivo USB deve ser carregado se a subchave identificador GRUPO restantes nomes correspondência o dispositivo USB. Caso contrário, a subchave identificador GRUPO nomes são formados de combinações de fornecedor, classe dispositivo e informações protocolo, separadas por sublinhados. Este informações provenientes de descritor dispositivo USB. A seguinte tabela mostra as combinações permitidas.

Chave de grupo Formulários permitidos

Group1_ID

DeviceVendorID,DeviceVendorID_DeviceProductID,DeviceVendorID_DeviceProductID_DeviceReleaseNumber

Group2_ID

DeviceClassCode, DeviceClassCode_DeviceSubclassCode, DeviceClassCode_DeviceSubclassCode_DeviceProtocolCode

Group3_ID

InterfaceClassCode,InterfaceClassCode_InterfaceSubclassCode, InterfaceClassCode_InterfaceSubclassCode_InterfaceProtocolCode

Configurações do Registro do módulo HCD

Se sua plataforma hardware contém UHCI–Compliant hospedar controladores, você terá uma tarefa de migração semelhante a uma plataforma hardware com OHCI-Complaint hospedar controladores. Os OEMs precisam incluir o seguinte Registro valores sob a HKEY_LOCAL_MACHINE\Drivers\Builtin\UHCI chave Registro para que o driver UHC irá ser carregado quando o sistema é inicializado.

[HKEY_LOCAL_MACHINE\Drivers\Builtin\UHCI]
    "Prefix"="HCD"
    "Dll"="uhci.dll"
    "Index"=dword:1
    "Order"=dword:1
    "UseExistingSettings"=dword:0
    "Irq"=dword:<hardware platform dependent>
    "MemBase"=dword:<hardware platform dependent>
    "Priority"=dword:<hardware platform dependent>

O UseExistingSettings chave controla se os valores para IRQ, MemBase, e Prioridade vêm de configurações BIOS do sistema ou se eles provenientes de Registro. Um valor de 0 faz com que a configuração BIOS a ser usado. Qualquer outro valor faz com que as configurações BIOS para ser ignorado em favor dos valores especificados na IRQ, MemBase, e Prioridade As chaves.

Quando o driver UHC é carregado no tempo inicializar, ele tenta detecção a presença de um controlador USB UHCI-Compliant hospedar. O driver UHC exemplo só é capaz de detectar o Controlador Intel PIIX4 por causa dos valores barramento PCI que são difíceis-codificado para o driver UHC. No entanto, a função detecção está disponível como codificar origem. Você pode alteração de função para detecção outros hospedar controladores USB UHCI-compatível.

A seguinte tabela lista os valores que o driver UHC exemplo utiliza para identificar o Controlador Intel PIIX4.

Campo PCI Valor Descrição

BaseClass

0x0C

Controlador de barramento serial

SubClass

0x03h

Subclasse USB

VendorID

0x8086

Fornecedor Intel identificação

DeviceID

0x7112

Dispositivo PIIX4 identificação

O exemplo HCD incluído Windows CE 3.0 suporta apenas um chip UHCI em um sistema. O UseExistingSettings chave não tem nenhum efeito no Windows CE 2.11 para o CEPC, para que o módulo HCD fornecido pelo Microsoft possui um endereço predefinido codificado rígido nela para o controlador hospedar. No Windows CE 2.12 e posterior, o módulo HCD obtém o controlador hospedar configurações interface dinamicamente de acordo com o UseExistingSettings chave conforme descrito acima. O valor de usar como padrão de UseExistingSettings chave também pode ser controlado em seu estação de trabalho desenvolvimento por meio de variável de ambiente CEPC_USB_USE_EXISTING. Se você definir essa variável para um novo valor, não é necessário para reconstruir o módulo HCD. Você só precisa executar o utilitário Makeimg para causar o novo valor a ser incorporado em sua imagem sistema operacional.

Fundamentalmente, Windows Embedded CE não é possível reconfigurar PCI dispositivos dinamicamente. Thefore, se UseExistingSettings é definido como 0, o controlador USB hospedar configurações interface devem corresponder os Registro da plataforma de hardware ou o módulo HCD não irá carregar. Se os dois não coincidirem, você poderá verificar configurações recurso da plataforma de hardware e atualização, em seguida, o arquivo Platform.reg com os endereços corretos e informações de IRQ. Como alternativa, você pode procurar a saída depuração enquanto seus inicializações plataforma hardware, que devem relatório de erro que contém essas configurações recurso.

A seguinte saída depuração mostra exemplo de código.

!OHCD: Configuration different from registry: IRQ %u, PortBase: 0x%X (reg: %u, 0x%X)

Configurações do Registro do controlador host USB

O seguinte Registro chaves apresentação USB hospedar controlador Registro chaves.

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI]
    "Prefix"="HCD"
    "Dll"="ohci.dll"
    "Index"=dword:1
    "Order"=dword:1
    "Irq"=dword:0F 
    "MemBase"=dword:FFBFE000
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\UHCI]
    "Prefix"="HCD"
    "Dll"="uhci.dll"
    "Index"=dword:1
    "Order"=dword:1
    "Irq"=dword:0A
    "MemBase"=dword:D801

See Also

Concepts

USB Host Client Drivers
USB Host Controller Driver Architecture