Identifikátor hardware
ID hardwaru je identifikační řetězec definovaný dodavatelem, který systém Windows používá ke spárování zařízení s balíčkem ovladačů . ID hardwaru identifikuje zařízení a indikuje, že jakýkoli balíček ovladače, který deklaruje, může pracovat se zařízením, které má toto ID pro určitý stupeň funkčnosti. Ve většině případů má zařízení přidružené více než jedno ID hardwaru. Seznam hardwarových ID se obvykle řadí od většiny po nejméně vhodný pro zařízení. Například seznam koncepčních hardwarových ID zařízení může vypadat takto:
<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>
Kde by skutečná ID hardwaru představovala tyto koncepty pomocí řetězců, které splňují požadavky na formát id hardwaru.
Vytvoření ID hardwaru pro zařízení
ID hardwaru se hlásí správci plug and play (PnP) enumerátoru zařízení (ovladač sběrnice ). Když autor ovladače sběrnice potřebuje vytvořit nové ID hardwaru pro zařízení, které hlásí PnP, používá jeden z následujících obecných formátů:
<enumerator>\<enumerator-specific-device-ID>
Tento formát je nejběžnější pro jednotlivá zařízení PnP, která jsou jedním enumerátorem hlášena správci Plug and Play (PnP).
\*<generic-device-ID>
Hvězdička označuje, že více než jeden enumerátor podporuje zařízení, jako je ISAPNP a BIOS.
<device-class-specific-ID>
Další informace naleznete v tématu obecné identifikátory.
Existující třída zařízení s vlastní zavedenou konvencí pojmenování může používat vlastní formát. Informace o formátech ID hardwaru najdete ve specifikaci hardwaru pro takové autobusy.
Počet znaků ID hardwaru, s výjimkou nulového terminátoru, musí být menší než MAX_DEVICE_ID_LEN
. Toto omezení platí pro součet délky všech polí a všech oddělovačů polí \\
v ID hardwaru. Pro více informací se podívejte do části Operations sekce v IRP_MN_QUERY_ID.
ID hardwarových pro kořenově enumerovaná zařízení
Kořenová výčtová zařízení jsou speciální v tom, že je možné je vytvořit pomocí rozhraní API, kde je možné zadat ID hardwaru. Kořenová výčtová zařízení s hardwarovými ID, která sdílejí obecné obory názvů, jako například ROOT\SYSTEM
, můžou kolidovat a vést k chybě znázorněné žlutým vykřičníkem ve Správci zařízení při aktualizaci Windows.
Tuto chybu můžete zabránit použitím jedinečného oboru názvů pro každý ovladač, který má kořenový výčet zařízení. Pro usb nebo systémové zařízení místo použití ROOT\USB
nebo ROOT\SYSTEM"
použít ROOT\[COMPANYNAME]\[DEVICENAME]
. Potom před instalací zkontrolujte, jestli už devnode existuje.
Získání seznamu ID hardwaru pro zařízení
Pokud chcete najít seznam ID hardwaru pro dané zařízení, postupujte takto:
- Otevřete Správce zařízení.
- Najděte zařízení ve stromu.
- Klikněte pravým tlačítkem na zařízení a vyberte Vlastnosti.
- Vyberte kartu Podrobnosti.
- V rozevíracím seznamu Vlastnost vyberte ID hardwaru nebo Kompatibilní ID.
Seznam ID hardwaru lze získat také programově načtením vlastnosti DEVPKEY_Device_HardwareIds na zařízení. Tuto vlastnost lze například načíst pomocí rozhraní API, jako jsou IoGetDevicePropertyData, SetupDiGetDevicePropertynebo CM_Get_DevNode_Property.
Seznam ID hardwaru, které tato rutina načte, je hodnota REG_MULTI_SZ. Maximální počet znaků v seznamu hardwaru, včetně ukončovacího znaku NULL za každým ID hardwaru a konečného ukončovacího znaku NULL, je REGSTR_VAL_MAX_HCID_LEN
. Maximální možný počet ID v seznamu hardwarových ID je 64.
Příklady HARDWAROVÝch ID
Tady je příklad obecného identifikátoru pro zařízení PnP:
root\*PNP0F08
Tady je příklad identifikátoru prozařízení PCI:
PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02