Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Identyfikator sprzętu to zdefiniowany przez dostawcę ciąg identyfikacji używany przez system Windows do dopasowania urządzenia do pakietu sterowników. Identyfikator sprzętu identyfikuje urządzenie. Wskazuje, że dowolny pakiet sterowników deklaruje, że może współpracować z urządzeniem, które ma ten identyfikator, zapewniając pewien zakres funkcjonalności.
W większości przypadków urządzenie ma więcej niż jeden identyfikator sprzętu. Zazwyczaj lista identyfikatorów sprzętu jest sortowana od najbardziej do najmniej odpowiedniego dla urządzenia. Na przykład lista koncepcyjnych identyfikatorów sprzętu dla urządzenia może wyglądać następująco:
<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>
Gdzie rzeczywiste identyfikatory sprzętu reprezentują te pojęcia przy użyciu ciągów, które spełniają wymagania dotyczące formatu identyfikatora sprzętu.
Tworzenie identyfikatora sprzętu dla urządzenia
Identyfikatory sprzętu są zgłaszane do Menedżera Plug and Play (PnP) przez moduł wyliczający urządzenia, czyli jego sterownik magistrali. Zazwyczaj, gdy autor sterownika magistrali musi utworzyć nowy identyfikator sprzętu dla urządzenia, które zgłasza do PnP, używa jednego z następujących formatów ogólnych:
<enumerator>\<enumerator-specific-device-ID>
Ten format jest najbardziej typowy dla indywidualnych urządzeń PnP zgłoszonych do menedżera Plug and Play przez jednego enumeratora.
\*<generic-device-ID>
Gwiazdka wskazuje, że więcej niż jeden moduł wyliczający obsługuje urządzenie, takie jak ISAPNP i BIOS.
<device-class-specific-ID>
Aby uzyskać więcej informacji, zobacz Ogólne identyfikatory.
Istniejąca klasa urządzeń z własną ustaloną konwencją nazewnictwa może używać formatu niestandardowego. Aby uzyskać informacje o formatach identyfikatorów sprzętu, zobacz specyfikację sprzętu dla takich magistrali.
Liczba znaków identyfikatora sprzętu, z wyłączeniem terminatora o wartości NULL, musi być mniejsza niż MAX_DEVICE_ID_LEN. To ograniczenie dotyczy sumy długości wszystkich pól i wszystkich \\ separatorów pól w identyfikatorze sprzętu. Aby uzyskać więcej informacji, zobacz sekcję OperacjaIRP_MN_QUERY_ID.
Identyfikatory sprzętu dla wyliczonych urządzeń głównych
Podstawowe urządzenia wyliczane są wyjątkowe, ponieważ można je utworzyć przy użyciu interfejsów API, w których można podać identyfikator sprzętu. Główne urządzenia z identyfikatorami sprzętu, które współużytkowały ogólne przestrzenie nazw, takie jak ROOT\SYSTEM, mogą powodować konflikt. Efektem jest ikona błędu oznaczona żółtym wykrzyknikiem w Menedżerze urządzeń podczas aktualizowania systemu Windows.
Ten błąd można zapobiec, używając unikatowej przestrzeni nazw dla każdego sterownika, który ma wyliczone urządzenie główne. W przypadku urządzenia USB lub systemowego, zamiast używać ROOT\USB lub ROOT\SYSTEM, użyj ROOT\[COMPANYNAME]\[DEVICENAME]. Następnie przed zainstalowaniem sprawdź, czy węzeł devnode jest już obecny.
Uzyskiwanie listy identyfikatorów sprzętu dla urządzenia
Aby znaleźć listę identyfikatorów sprzętu dla urządzenia, wykonaj następujące kroki:
- W obszarze wyszukiwania systemu Windows wprowadź i wybierz pozycję Menedżer urządzeń.
- W Menedżerze urządzeń znajdź urządzenie w drzewie.
- Wybierz urządzenie prawym przyciskiem i wybierz pozycję Właściwości.
- Wybierz kartę Szczegóły.
- W polu Właściwość wybierz pozycję Identyfikatory sprzętu lub Zgodne identyfikatory.
Listę identyfikatorów sprzętu można również uzyskać programowo, pobierając właściwość DEVPKEY_Device_HardwareIds na urządzeniu. Na przykład właściwość ta można pobrać za pomocą interfejsów API, takich jak IoGetDevicePropertyData, SetupDiGetDeviceProperty lub CM_Get_DevNode_Property.
Lista identyfikatorów sprzętu pobieranych przez tę procedurę jest wartością REG_MULTI_SZ . Maksymalna liczba znaków na liście sprzętowej, w tym terminator NULL po każdym identyfikatorze sprzętu i ostatnim terminatorze NULL, to REGSTR_VAL_MAX_HCID_LEN. Maksymalna możliwa liczba identyfikatorów na liście identyfikatorów sprzętu wynosi 64.
Przykłady identyfikatorów sprzętu
Oto przykład ogólnego identyfikatora urządzenia PnP:
root\*PNP0F08
Oto przykład identyfikatora urządzenia PCI:
PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02