Partilhar via


Descritores do sistema operacional Microsoft para dispositivos USB

A Microsoft fornece um conjunto de classes de dispositivo proprietárias e descritores USB, que são chamados de Microsoft OS Descriptors (MODs).

Devido ao rápido surgimento de dispositivos que contêm várias funções de hardware, muitos fabricantes acham que seus dispositivos não se encaixam confortavelmente em nenhuma das classes de dispositivos USB (barramento serial universal) atuais. Isso priva tais fabricantes de uma das características mais atraentes da tecnologia USB: a padronização do software do driver (de acordo com a classe do dispositivo). O Windows fornece drivers de classe nativos para a maioria dos dispositivos que pertencem a classes de dispositivos USB padrão, e esses drivers permitem que os usuários finais conectem facilmente esses dispositivos ao computador sem a necessidade de instalar software especial.

Para acomodar os fabricantes cujos dispositivos não se encaixam no conjunto atual de classes de dispositivos USB, a Microsoft desenvolveu um conjunto de classes de dispositivos proprietários e descritores USB, que são chamados de Microsoft OS Descriptors (MODs). Os aplicativos e o software do sistema podem identificar os dispositivos que pertencem às classes de dispositivo definidas pela Microsoft consultando os dispositivos para determinar se eles oferecem suporte a MODs.

Os Descritores do SO Microsoft têm usos importantes além do suporte às classes de dispositivo proprietárias. Em particular, eles fornecem um mecanismo para obter o máximo benefício do firmware do dispositivo. Com a ajuda dos Descritores do SO Microsoft, você pode usar o firmware para fornecer arquivos de ajuda, ícones especiais, URLs (Uniform Resource Locators), configurações do Registro e outros dados necessários para facilitar a instalação e melhorar a satisfação do cliente. Em alguns casos, você pode abrir mão de mídias de armazenamento, como disquetes e CDs, o que simplifica a entrega e o suporte de atualizações.

Suporte do sistema operacional

Os descritores do Microsoft OS 1.0 são suportados em:

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista, Windows Server 2008
  • Windows XP com Service Pack 1 (SP1), Windows Server 2003

Os descritores do Microsoft OS 2.0 são suportados em:

  • Windows 11
  • Windows 10
  • Windows 8.1

Por que o Windows emite uma solicitação de descritor de cadeia de caracteres para indexar 0xEE?

Os dispositivos que oferecem suporte a descritores do sistema operacional Microsoft devem armazenar um descritor de cadeia de caracteres USB especial no firmware no índice de cadeia de caracteres fixa de 0xEE. Esse descritor de cadeia de caracteres é chamado de descritor de cadeia de caracteres do sistema operacional Microsoft.

  • Sua presença indica que o dispositivo contém um ou mais descritores de recurso do sistema operacional.
  • Ele contém os dados necessários para recuperar os descritores de recurso do sistema operacional associados.
  • Ele contém um campo de assinatura que diferencia o descritor de cadeia de caracteres do sistema operacional de outras cadeias de caracteres que os IHVs podem optar por armazenar em 0xEE.
  • Ele contém um número de versão que permite revisões futuras de descritores do sistema operacional Microsoft.

Se não houver nenhum descritor de cadeia de caracteres em 0xEE ou se o descritor de cadeia de caracteres nesse índice não for um descritor de cadeia de caracteres de sistema operacional válido, o Windows assumirá que o dispositivo não contém nenhum descritor de recurso do sistema operacional.

Quando um novo dispositivo é conectado a um computador pela primeira vez, um sistema operacional que oferece suporte a Descritores do Sistema Operacional Microsoft solicita o descritor de cadeia de caracteres que está no índice 0xEE. O Microsoft OS String Descriptor contém um campo de assinatura incorporado que o sistema operacional usa para diferenciá-lo de outras cadeias de caracteres que podem estar no índice 0xEE. A presença de um descritor de cadeia de caracteres que contém o campo de assinatura apropriado no índice 0xEE indica ao sistema operacional que o dispositivo oferece suporte a Descritores do Sistema Operacional Microsoft. O Microsoft OS String Descriptor também fornece ao sistema operacional informações de versão.

O sistema operacional consulta o descritor de cadeia de caracteres no índice 0xEE durante a enumeração do dispositivo - antes que o driver do dispositivo seja carregado - o que pode causar o mau funcionamento de alguns dispositivos. Esses dispositivos não são suportados por versões do sistema operacional Windows que oferecem suporte a Descritores do Sistema Operacional Microsoft.

Se um dispositivo não contiver um descritor de cadeia de caracteres válido no índice 0xEE, ele deverá responder com um pacote stall (em outras palavras, um pacote que contém um identificador de pacote do tipo STALL), que é descrito na seção "Erros de solicitação" da Especificação Universal Serial Bus. Se o dispositivo não responder com um pacote de paralisação, o sistema emitirá um pacote de redefinição zero de extremidade única para o dispositivo, para ajudá-lo a se recuperar de seu estado estagnado (somente Windows XP).

Depois que o sistema operacional solicita um descritor de cadeia de caracteres do sistema operacional Microsoft de um dispositivo, ele cria a seguinte chave do Registro:

HLKM\SYSTEM\CurrentControlSet\Control\UsbFlags\vvvvpppprrrrr

O sistema operacional cria uma entrada do Registro, chamada osvc, sob essa chave do Registro que indica se o dispositivo oferece suporte a Descritores do Sistema Operacional Microsoft. Se o dispositivo não fornecer uma resposta válida na primeira vez que o sistema operacional consultá-lo para um descritor de cadeia de caracteres do sistema operacional da Microsoft, o sistema operacional não fará mais solicitações para esse descritor.

Para entradas do Registro sob essa chave, consulte Entradas do Registro do dispositivo USB.

Para obter mais informações, consulte Microsoft OS 1.0 Descriptors Specification.

Que tipos de descritores de recursos do sistema operacional o Windows suporta?

Qualquer informação a ser armazenada como um descritor de recurso deve estar em conformidade com um dos formatos padrão definidos pela Microsoft. Outros descritores de recursos não podem ser definidos ou implementados sem o consentimento da Microsoft. A Microsoft definiu os seguintes descritores de recursos:

  • ID Compat estendida. O Windows usa códigos de classe e subclasse para ajudar a localizar o driver padrão apropriado para um dispositivo USB. No entanto, o Grupo de Trabalho de Dispositivo USB deve alocar esses códigos. Isso significa que os dispositivos que implementam novos tipos de recursos geralmente ainda não têm códigos de classe e subclasse apropriados, portanto, o Windows não pode usar os códigos para selecionar um driver padrão. IHVs podem contornar esse problema armazenando as informações no firmware como um descritor de recurso de sistema operacional de ID compatível estendido. O Windows pode recuperar essas informações quando o dispositivo estiver conectado e usá-las para ajudar a determinar qual driver padrão carregar.
  • Propriedades estendidas. Atualmente, há dois níveis nos quais as propriedades podem ser declaradas para um dispositivo USB: nível de classe ou nível de devnode. O descritor de recurso de SO de propriedades estendidas permite que um fornecedor armazene mais propriedades, como páginas de ajuda, URLs e ícones no firmware do dispositivo.