Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Идентификатор оборудования — это определяемая поставщиком строка идентификации, которую Windows использует для сопоставления устройства с пакетом драйвера . Идентификатор оборудования идентифицирует устройство. Он указывает, что любой пакет драйвера, объявляющий его, может работать с устройством, которое имеет этот идентификатор для определенной степени функциональности.
В большинстве случаев устройство имеет несколько идентификаторов оборудования. Как правило, список аппаратных идентификаторов сортируется от большинства до наименее подходящих для устройства. Например, список концептуальных идентификаторов оборудования для устройства может выглядеть следующим образом:
<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>
Где фактические идентификаторы оборудования представляют эти понятия с помощью строк, которые соответствуют требованиям к формату идентификатора оборудования.
Создание идентификатора оборудования для устройства
Аппаратные идентификаторы передаются диспетчеру Plug and Play (PnP) энумератором устройства, то есть его драйвером шины. Как правило, когда автор драйвера шины должен создать новый идентификатор оборудования для устройства, которое он сообщает в PnP, он использует один из следующих универсальных форматов:
<enumerator>\<enumerator-specific-device-ID>
Этот формат является наиболее распространенным для отдельных устройств PnP, сообщаемых диспетчеру Plug and Play одним перечислителем.
\*<generic-device-ID>
Звездочка указывает, что несколько перечислителя поддерживают устройство, например ISAPNP и BIOS.
<device-class-specific-ID>
Дополнительные сведения см. в универсальные идентификаторы.
Существующий класс устройства с собственным установленным соглашением об именовании может использовать пользовательский формат. Сведения о форматах идентификаторов оборудования см. в спецификации оборудования для таких автобусов.
Число символов аппаратного идентификатора, за исключением конца NULL, должно быть меньше MAX_DEVICE_ID_LEN. Это ограничение применяется к сумме длины всех полей и всех разделителей полей \\ в идентификаторе оборудования. Дополнительные сведения см. в разделе «Операция»IRP_MN_QUERY_ID.
Идентификаторы оборудования для корневых перечисляемых устройств
Корневые перечислимые устройства являются особыми в том, что они могут быть созданы с помощью API, где можно предоставить идентификатор оборудования. Корневые перечисляемые устройства с аппаратными идентификаторами, которые совместно используют универсальные пространства имен, например ROOT\SYSTEM, могут конфликтовать. Результатом является значок ошибки с желтым восклицательным знаком в Диспетчере устройств при обновлении Windows.
Эту ошибку можно предотвратить с помощью уникального пространства имен для каждого драйвера, имеющего корневое перечисленное устройство. Для USB-устройства или системного устройства вместо использования ROOT\USB или ROOT\SYSTEM используйте ROOT\[COMPANYNAME]\[DEVICENAME]. Перед установкой проверьте наличие devnode.
Получение списка идентификаторов оборудования для устройства
Чтобы найти список идентификаторов оборудования для устройства, выполните следующие действия.
- В поиске Windows введите и выберите диспетчер устройств.
- В диспетчере устройств найдите устройство в дереве.
- Щелкните правой кнопкой мыши устройство и выберите Свойства.
- Перейдите на вкладку подробности.
- Для свойства выберите идентификаторы оборудования или совместимые идентификаторы.
Вы также можете получить список аппаратных идентификаторов программно, извлекая свойство DEVPKEY_Device_HardwareIds на устройстве. Например, это свойство можно получить с помощью API,таких как IoGetDevicePropertyData, SetupDiGetDevicePropertyили CM_Get_DevNode_Property.
Список идентификаторов оборудования, извлекаемых этой подпрограммой, является значением REG_MULTI_SZ. Максимальное число символов в списке оборудования, включая добавление символа NULL после каждого идентификатора оборудования и окончательного символа NULL, составляет REGSTR_VAL_MAX_HCID_LEN. Максимально возможное количество идентификаторов в списке аппаратных идентификаторов — 64.
Примеры идентификаторов оборудования
Ниже приведен пример универсального идентификатора для устройства PnP:
root\*PNP0F08
Ниже приведен пример идентификатора дляустройства PCI:
PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02