Sdílet prostřednictvím


Porovnání tříd nastavení a tříd rozhraní

Pochopení rozdílu mezi třídami nastavení zařízení a třídami rozhraní zařízení je zásadní pro úspěšný vývoj ovladačů systému Windows a správu zařízení. I když se tyto třídy můžou podobat, slouží v ekosystému zařízení s Windows základním způsobem různým účelům. Třídy nastavení určují, jak operační systém instaluje a konfiguruje zařízení. Třídy rozhraní umožňují komunikaci a funkce modulu runtime mezi ovladači, aplikacemi a zařízeními. Pochopení tohoto rozdílu vám pomůže zvolit správný typ třídy pro instalaci zařízení, implementovat správná oznámení zařízení a vyhnout se běžným nástrahám vývoje.

Zařízení často patří do třídy nastavení a současně zveřejňuje několik rozhraní zařízení v různých třídách rozhraní. Nicméně dva typy tříd slouží různým účelům a nejsou zaměnitelné.

Diagram znázorňující vztah mezi zařízením, jeho třídou nastavení a různými třídami rozhraní

Comparison

Následující tabulka shrnuje klíčové rozdíly a relace mezi třídami nastavení a třídami rozhraní:

Aspekt Třídy nastavení Třídy rozhraní
Primární účel Seskupení zařízení s podobnou instalací a konfigurací Seskupování rozhraní zařízení, která poskytují podobné funkce a komunikaci
Využití Používá se systémem Windows během instalace zařízení. Používá se ovladači a aplikacemi pro interakci zařízení.
Definice GUID Obvykle definované v Devguid.h Definované v souborech hlaviček specifických pro zařízení (například Ntdddmou.h, Ntddpar.h)
Kritéria seskupení Zařízení nainstalovaná a nakonfigurovaná podobně Obecně platí, že rozhraní zařízení, která implementují konkrétní vstupně-výstupní kontrakt
Oznámení Nepoužívané pro oznámení o doručení nebo odebrání zařízení Používá se k registraci oznámení o doručení a odebrání rozhraní zařízení.
Examples Senzory, firmware, Bluetooth Audio Capture, Audio Render, Ambient Light Sensor
Vztah Zařízení patří do jedné třídy nastavení. Zařízení může vystavit nula nebo více rozhraní zařízení v různých třídách rozhraní.
Životnost Relevantní během procesu instalace Relevantní během provozu zařízení

Je důležité rozlišovat mezi dvěma typy tříd zařízení: třídami rozhraní zařízení a třídami nastavení zařízení. Oba můžou být snadno zmatení. V kódu v uživatelském režimu používají obě třídy stejnou sadu funkcí instalace zařízení. Používají také stejnou sadu datových struktur (sady informací o zařízení).

Stejná třída nastavení, různé třídy rozhraní:

  • Zařízení: Dvě různá senzorová zařízení
  • Třída nastavení: Obě zařízení jsou ve třídě Senzorů .
  • Třídy rozhraní: Jeden snímač zveřejňuje rozhraní zařízení okolního světla a druhý zveřejňuje rozhraní zařízení accelerometru.

Zvažte zařízení myši USB a zařízení s klávesnicí USB. Obě používají stejnou třídu rozhraní (human interface device). Patří ale do různých tříd nastavení, myši a klávesnice.

Stejná třída rozhraní, různé třídy nastavení:

  • Zařízení: Myš USB a klávesnice USB
  • Třída rozhraní: Obě zařízení ke komunikaci se systémem využívají stejnou třídu rozhraní (Human Interface Device).
  • Třídy nastavení: Zařízení myši patří do třídy nastavení myši , zatímco klávesnice patří do třídy nastavení klávesnice .

Třídy nastavení zařízení

Třídy nastavení zařízení jsou předdefinované kategorie používané výhradně pro instalaci a konfiguraci zařízení ve Windows. Pomáhají operačnímu systému pochopit, jak spravovat zařízení během procesu instalace. Třídy nastavení poskytují mechanismus pro seskupování nainstalovaných a nakonfigurovaných zařízení stejným způsobem. Další informace o třídách nastavení naleznete v tématu Třídy nastavení zařízení definované systémem, které jsou k dispozici dodavatelům.

Třídy nastavení zařízení s Windows jsou definovány v systémovém souboru Devguid.h. Tento soubor definuje řadu identifikátorů GUID pro třídy nastavení. Třídy nastavení zařízení reprezentované v Devguid.h však nesmí být zaměňovány s třídami rozhraní zařízení . Soubor Devguid.h obsahuje pouze identifikátory GUID pro třídy nastavení.

Třídy rozhraní zařízení

Třídy rozhraní zařízení poskytují mechanismus pro seskupení rozhraní zařízení podle sdílených charakteristik nebo funkcí. Ovladače a uživatelské aplikace mohou registrovat oznámení o rozhraních zařízení v konkrétní třídě rozhraní. To znamená, že obdrží oznámení, když je povolené jakékoli rozhraní zařízení, které patří do této třídy (dorazí) nebo je zakázané (odebráno). Nepotřebují sledovat jednotlivá zařízení. Třídy rozhraní zařízení seskupují rozhraní zařízení vystavená zařízeními. Zaregistrujete si oznámení o doručení a odebrání rozhraní zařízení.

Definice tříd rozhraní nejsou k dispozici v jednom souboru. Třída rozhraní zařízení je vždy definována v hlavičce souboru, který patří výhradně do konkrétní třídy zařízení. Například Ntddmou.h obsahuje definici GUID_DEVINTERFACE_MOUSE, guid představující třídu rozhraní myši. Ntddpar.h definuje identifikátor GUID třídy rozhraní pro paralelní zařízení. Ntddpcm.h definuje identifikátor GUID standardní třídy rozhraní pro zařízení PCMCIA. Ntddstor.h definuje identifikátor GUID třídy rozhraní pro zařízení úložiště.

Pokud se chcete zaregistrovat k oznámením rozhraní zařízení, použijte identifikátory GUID nalezené v hlavičkových souborech specifických pro třídu rozhraní zařízení. Tyto identifikátory GUID umožňují dostávat oznámení o doručení instance rozhraní zařízení. Pokud ovladač zaregistruje oznámení pomocí identifikátoru GUID třídy nastavení místo identifikátoru GUID třídy rozhraní, nebude upozorněn při příchodu rozhraní.

Při definování nové třídy rozhraní nepoužívejte jeden identifikátor GUID k identifikaci třídy nastavení i třídy rozhraní.