Megosztás:


Hardverazonosító

A hardverazonosító egy szállító által definiált azonosító sztring, amelyet a Windows az eszköz illesztőprogram-csomaghoz való illesztéséhez használ. A hardverazonosító azonosítja az eszközt. Azt jelzi, hogy minden olyan illesztőprogram-csomag, amely deklarálja, képes működni egy olyan eszközzel, amely bizonyos fokú funkcionalitáshoz rendelkezik ezzel az azonosítóval.

A legtöbb esetben egy eszköz több hardverazonosítóval is rendelkezik. A hardverazonosítók listája általában az eszközökhöz leginkább megfelelőtől a legkevésbé megfelelőig van rendezve. Az eszköz fogalmi hardverazonosítóinak listája például a következőképpen nézhet ki:

<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>

Ahol a tényleges hardverazonosítók azokat a fogalmakat olyan karakterláncokkal jelölik, amelyek megfelelnek a hardverazonosítók formátumkövetelményeinek.

Eszköz hardverazonosítójának létrehozása

A hardverazonosítókat az eszköz enumerátora, vagyis a buszillesztő jelenti a Plug and Play Manager (PnP) számára. Amikor a buszillesztő-program írójának új hardverazonosítót kell létrehoznia egy eszközhöz, amely jelentést készít a PnP-nek, az alábbi általános formátumok egyikét használja:

<enumerator>\<enumerator-specific-device-ID>

Ez a formátum a leggyakoribb olyan PnP-eszközök esetében, amelyeket egyetlen számbaadó jelentett a Plug and Play-kezelőnek.

\*<generic-device-ID>

A csillag azt jelzi, hogy egynél több enumerátor támogatja az eszközt, például az ISAPNP-t és a BIOS-t.

<device-class-specific-ID>

További információ: Általános azonosítók.

Egy meglévő, saját elnevezési konvencióval rendelkező eszközosztály egyéni formátumot használhat. A hardverazonosítók formátumával kapcsolatos információkért tekintse meg az ilyen buszok hardverspecifikációját.

A hardverazonosító karaktereinek száma – a NULL-terminátor kivételével – kisebb lehet, mint MAX_DEVICE_ID_LEN. Ez a korlátozás a hardverazonosítóban lévő összes mező és \\ mezőelválasztó hosszának összegére vonatkozik. További információt a IRP_MN_QUERY_IDMűvelet szakaszában talál.

Hardverazonosítók a legfelső szintű számba vett eszközökhöz

A root-ként felsorolt eszközök abban különlegesek, hogy olyan API-k használatával hozhatók létre, amelyekben megadható a hardverazonosító. Az olyan gyökérként felsorolt eszközök, amelyek hardverazonosítói általános névtereket osztanak meg, mint például a ROOT\SYSTEM, ütközhetnek. Az eredmény egy sárga-bang hiba ikon a Device Managerben a Windows frissítésekor.

Ezt a hibát úgy előzheti meg, hogy minden olyan illesztőprogramhoz használ egyedi névteret, amely rendelkezik egy root enumerált eszközzel. USB- vagy rendszereszköz esetén ahelyett, hogy azt használjuk ROOT\USB vagy ROOT\SYSTEMhasználjuk ROOT\[COMPANYNAME]\[DEVICENAME]. Ezután a telepítés előtt ellenőrizze, hogy a devnode már létezik-e.

Az eszközhöz tartozó hardverazonosítók listájának beszerzése

Az eszközhöz tartozó hardverazonosítók listájának megkereséséhez kövesse az alábbi lépéseket:

  1. A Windows-keresésben adja meg és válassza az Eszközkezelőt.
  2. Az Eszközkezelőben keresse meg az eszközt a fán.
  3. Válassza ki a jobb gombbal az eszközt, és válassza a Tulajdonságok lehetőséget.
  4. Válassza a Részletek lapot.
  5. Tulajdonság esetén válassza a Hardverazonosítók vagy a Kompatibilis azonosítók lehetőséget.

A hardverazonosítók listáját programozott módon is lekérheti az eszköz DEVPKEY_Device_HardwareIds tulajdonságának beolvasásával. Ez a tulajdonság például olyan API-kkal kérhető le, mint az IoGetDevicePropertyData, a SetupDiGetDeviceProperty vagy a CM_Get_DevNode_Property.

A rutin által lekért hardverazonosítók listája REG_MULTI_SZ érték. A hardverlistában szereplő karakterek maximális száma, beleértve az egyes hardverazonosítók után következő NULL-terminátort és a végső NULL-terminátort, az REGSTR_VAL_MAX_HCID_LEN. A hardverazonosítók listájában szereplő azonosítók maximális száma 64.

Példák hardverazonosítókra

Íme egy példa egy PnP-eszköz általános azonosítójára :

root\*PNP0F08

Íme egy példa egy PCI-eszköz azonosítójára:

PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02