Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V řadě operačních systémů Windows jsou zařízení v podstatě kolekcí funkčních instancí zařízení, z nichž každá představuje funkční koncový bod, který umožňuje určitou formu komunikace se zařízením.
Termín uzel zařízení (devnode) odkazuje na zásobník ovladačů pro takový funkční koncový bod, a to kromě vlastností, které popisují koncový bod a jeho přidružený stav. Například multifunkční zařízení, které podporuje funkce tiskárny, skeneru a faxu, může mít několik uzlů zařízení, jeden pro každý funkční koncový bod v zařízení.
Před Windows 7 měl každý funkční koncový bod devnode, který je k němu přidružen. Komponenty platformy Windows a aplikace třetích stran můžou dotazovat dev uzly na stav zařízení a informace a komunikovat s hardwarem zařízení prostřednictvím rozhraní, která funkční koncové body zpřístupňují.
Pro jednofunkční zařízení obsahuje jeden devnode všechny informace, které se týkají funkčního koncového bodu zařízení. Podobně má multifunkční zařízení několik vývojových uzlů, které jsou přidružené ke každému funkčnímu koncovému bodu zařízení. Systém Windows však nedokáže rozpoznat, že skupina vývojových uzlů pochází ze stejného fyzického zařízení. Každý devnode, který patří do stejného multifunkčního zařízení, neobsahuje žádné identifikační informace, které umožňují správci Plug and Play (PnP) seskupit několik devnode jako jednoho zařízení. Proto není možné mít holistický pohled na zařízení a funkce, které poskytuje jedno fyzické zařízení.
Od Windows 7 operační systém používá nové ID (ID kontejneru) k seskupení jednoho nebo více uzlů zařízení, které pocházejí z a patří každé instanci konkrétního fyzického zařízení. ID kontejneru je vlastnost každého zařízení a je určena prostřednictvím globálně jedinečného identifikátoru (GUID).
Každá instance fyzického zařízení nainstalovaného v počítači má jedinečné ID kontejneru. Všechny devnodes, které představují funkci v této instanci fyzického zařízení, sdílejí stejné ID kontejneru. Následující obrázek znázorňuje příklad této relace.
Existuje jedno ID kontejneru se zvláštním významem pro ovladače sběrnice: NULL_GUID, která je definována takto: {00000000-0000-0000-0000-000000000000}.
Obecně platí, že při vytváření sestavy ID kontejneru nevrací NULL_GUID jako výchozí případ. Místo toho nezpracujte IRP_MN_QUERY_ID pro případ BusQueryContainerIDs a nechejte PnP použít výchozí logiku.
Při vracení NULL_GUID jako ID kontejneru ovladač sběrnice deklaruje PnP, že zařízení nesmí být součástí žádného kontejneru, takže vrácení NULL_GUID je vhodné pouze ve velmi zvláštních případech. Například vývojový uzel , například zařízení svazku, může zahrnovat více disků ve více kontejnerech, ale nepatří do žádného kontejneru. Takové zařízení bude mít DEVPKEY_Device_BaseContainerId rovna NULL_GUID a vůbec nebude mít DEVPKEY_Device_ContainerId.
Kromě velmi zvláštních případů by ovladač sběrnice neměl nikdy vracet hodnotu NULL_GUID při hlášení hardwarového zařízení a ovladače sběrnice by měly chránit před vadným hardwarem, který hlásí hodnotu NULL_GUID z jejich sběrnice. V těchto případech by s ním řidič sběrnice měl zacházet buď jako s chybou zařízení, nebo s ním zacházet, jako by zařízení nenahlásilo hodnotu.