Sdílet prostřednictvím


Jak se ID kontejnerů generují z funkce vyměnitelného zařízení

Pokud ovladač sběrnice nemůže poskytnout ID kontejneru pro uzel zařízení (devnode), který vyčítá, správce Plug and Play (PnP) použije schopnost vyměnitelného zařízení k vygenerování ID kontejneru pro všechny uzly zařízení uvedené pro daný přístroj. Další informace o funkci vyměnitelného zařízení najdete v tématu Přehled funkce vyměnitelného zařízení.

Následující heuristika popisuje, jak se ID kontejnerů generují z funkce vyměnitelného zařízení:

  1. Pokud má devnode možnost vyměnitelného zařízení nastavenou na HODNOTU TRUE, vygenerujte pro devnode nové ID kontejneru.

  2. Pokud má vývojový uzel schopnost vyměnitelného zařízení nastavenou na FALSE, dědí ID kontejneru z nadřazeného uzlu.

Devnode nemůže vytvořit výčet podřízených devnode, dokud se neinicializuje a jeho zásobník ovladačů se spustí. Jakmile se jeho ID kontejneru přiřadí během inicializace, devnode je připraven rozšířit id kontejneru do libovolného z jeho nesměnitelných podřízených položek, jak jsou uvedené.

Vývojový devnode s nastaveným vyměnitelným zařízením na TRUE se považuje za hlavní (nadřazený) devnode pro zařízení a pro tento devnode se vygeneruje ID kontejneru.

Všechny podřízené položky tohoto nadřazeného vývojového uzlu dědí stejné ID kontejneru, pokud nemají možnost vyměnitelného zařízení nastavenou na hodnotu TRUE. V tomto případě se vyměnitelnému podřízenému vývojovému uzlu přiřadí jiné ID kontejneru a stane se nadřazeným devnodem tohoto vyměnitelného zařízení. Všechny podřízené položky tohoto uzlu zařízení dědí stejné ID kontejneru.

Předpokládejme například, že jednofunkční myš je připojena k počítači přes USB. V tomto případě ovladač sběrnice USB zjistí nové zařízení a zjistí, že se jedná o zařízení s rozhraním USB pro lidské rozhraní (HID). Ovladač sběrnice USB pak pro zařízení vytvoří devnode USB HID. Devnode HID také zjistí, že zařízení HID je myš a vytvoří podřízený devnode pro myš kompatibilní s HID.

Použití tohoto heurismu u tohoto příkladu má za následek následující akce:

  1. Vytvoří se devnode USB HID. Funkce vyměnitelného zařízení je u tohoto devnode nastavena na TRUE, protože jeho nadřazený rozbočovač USB devnode rozpoznal, že bylo připojeno k externímu portu USB.

  2. Identifikátor kontejneru je vytvořen pro tento vývojový uzel, protože představuje nejvyšší vývojový uzel u zařízení, které lze vyměnit. V důsledku toho je tento devnode považován za nadřazený devnode pro vyměnitelné zařízení.

  3. Vytvoří se zařízení myši kompatibilní s rozhraním HID. Funkce vyměnitelného zařízení je u tohoto uzlu zařízení nastavená na FALSE, protože nadřazený uzel zařízení USB HID hlásí všechny své podřízené položky jako nevyjímatelné. V tomto případě devnode HID-kompatibilní myši dědí ID kontejneru nadřazeného devnode.

Prostřednictvím této heuristiky je ke každému devnodu, který patří myši, přiřazeno stejné ID kontejneru. Správce PnP úspěšně seskupil devnodes do logického zařízení, i když pro zařízení neexistuje žádný jedinečný identifikátor.

Poznámka:

Úspěch této heuristiky spoléhá na konkrétní ovladač sběrnice, který správně hlásí schopnost připojení vyměnitelného zařízení pro každé zařízení, které identifikuje. Ovladač sběrnice musí zajistit, aby nadřazený devnode zařízení byl nastaven jako vyměnitelný a jeho podřízené devnode nebyly nastaveny jako vyměnitelné.