Partilhar via


Classes de configuração vs. classes de interface

É importante distinguir entre os dois tipos de classes de dispositivos: classes de interface de dispositivo e classes de configuração de dispositivo. Os dois podem ser facilmente confundidos porque no código de modo de usuário o mesmo conjunto de funções de instalação do dispositivo e o mesmo conjunto de estruturas de dados (conjuntos de informações do dispositivo) são usados com ambas as classes. Além disso, um dispositivo geralmente pertence a uma classe de configuração e várias classes de interface ao mesmo tempo. No entanto, os dois tipos de classes servem propósitos diferentes, fazem uso de áreas diferentes no registro e dependem de um conjunto diferente de arquivos de cabeçalho para definir GUIDs de classe.

Classes de configuração de dispositivo fornecer um mecanismo para agrupar dispositivos que são instalados e configurados da mesma maneira. Por exemplo, todas as unidades CD-ROM pertencem à classe de configuração do CDROM.

Classes de interface de dispositivos fornecem um mecanismo para agrupar dispositivos de acordo com características ou funcionalidades partilhadas. Em vez de rastrear a presença no sistema de um dispositivo individual, drivers e aplicativos de usuário podem se registrar para serem notificados da chegada ou remoção de qualquer dispositivo que pertença a uma classe de interface específica.

As classes de configuração de dispositivo Windows são definidas no arquivo de sistema Devguid.h. Este arquivo define uma série de GUIDs para classes de instalação. No entanto, as classes de configuração de dispositivo representadas em Devguid.h não devem ser confundidas com as classes de interface de dispositivo . O arquivo Devguid.h contém apenas GUIDs para classes de instalação.

As definições de classes de interface não são fornecidas em um único arquivo. Uma classe de interface de dispositivo é sempre definida em um arquivo de cabeçalho que pertence exclusivamente a uma classe específica de dispositivos. Por exemplo, Ntddmou.h contém a definição de GUID_DEVINTERFACE_MOUSE, o GUID que representa a classe de interface do mouse; Ntddpar.h define o GUID da classe de interface para dispositivos paralelos; Ntddpcm.h define o GUID da classe de interface padrão para dispositivos PCMCIA; Ntddstor.h define o GUID da classe de interface para dispositivos de armazenamento e assim por diante.

Os GUIDs em arquivos de cabeçalho que são específicos para a classe de interface de dispositivo devem ser usados para registrar para notificação de chegada de uma instância de uma interface de dispositivo. Se um driver se registrar para notificação usando um GUID de classe de configuração em vez de um GUID de classe de interface, ele não será notificado quando uma interface chegar.

Ao definir uma nova classe de configuração ou de interface, evite usar um único GUID para identificar tanto uma classe de configuração quanto uma de interface.

Para obter mais informações sobre GUIDs, consulte Usando GUIDs em drivers.