Condividi tramite


Configurare classi e classi di interfaccia

È importante distinguere tra i due tipi di classi di dispositivo: classi di interfacciadel dispositivo e classi di configurazione del dispositivo. I due possono essere facilmente confusi perché nel codice in modalità utente lo stesso set di funzioni di installazione del dispositivo e lo stesso set di strutture dati (set di informazioni dispositivo) vengono usati con entrambe le classi. Inoltre, un dispositivo spesso appartiene a una classe di configurazione e a diverse classi di interfaccia contemporaneamente. Tuttavia, i due tipi di classi servono scopi diversi, usano aree diverse nel Registro di sistema e si basano su un set diverso di file di intestazione per definire i GUID di classe.

Le classi di installazione del dispositivo forniscono un meccanismo per raggruppare i dispositivi installati e configurati nello stesso modo. Ad esempio, tutte le unità CD-ROM appartengono alla classe di installazione CDROM.

Le classi dell'interfaccia del dispositivo forniscono un meccanismo per raggruppare i dispositivi in base a caratteristiche o funzionalità condivise. Invece di tenere traccia della presenza nel sistema di un singolo dispositivo, i driver e le applicazioni utente possono registrarsi per ricevere una notifica all'arrivo o alla rimozione di qualsiasi dispositivo appartenente a una determinata classe di interfaccia.

Le classi di installazione dei dispositivi Windows sono definite nel file di sistema Devguid.h. Questo file definisce una serie di GUID per le classi di installazione. Tuttavia, le classi di installazione del dispositivo rappresentate in Devguid.h non devono essere confuse con le classi di interfaccia del dispositivo. Il file Devguid.h contiene solo GUID per le classi di installazione.

Le definizioni delle classi di interfaccia non vengono fornite in un singolo file. Una classe di interfaccia del dispositivo viene sempre definita in un file di intestazione che appartiene esclusivamente a una determinata classe di dispositivi. Ad esempio, Ntddmou.h contiene la definizione di GUID_DEVINTERFACE_MOUSE, il GUID che rappresenta la classe dell'interfaccia del mouse; Ntddpar.h definisce il GUID della classe di interfaccia per i dispositivi paralleli; Ntddpcm.h definisce il GUID della classe di interfaccia standard per i dispositivi PCMCIA; Ntddstor.h definisce il GUID della classe di interfaccia per i dispositivi di archiviazione e così via.

I GUID nei file di intestazione specifici della classe dell'interfaccia del dispositivo devono essere usati per registrare la notifica dell'arrivo di un'istanza di un'interfaccia del dispositivo. Se un driver registra per la notifica usando un GUID della classe di installazione anziché un GUID della classe di interfaccia, non verrà notificata quando arriva un'interfaccia.

Quando si definisce una nuova classe di installazione o una classe di interfaccia, non usare un singolo GUID per identificare sia una classe di installazione che una classe di interfaccia.

Per altre informazioni sui GUID, vedere Uso di GUID nei driver.