Compartir a través de


Identificador de hardware

Un identificador de hardware es una cadena de identificación definida por el proveedor que Windows usa para hacer coincidir un dispositivo con un paquete de controladores de . Un identificador de hardware identifica un dispositivo e indica que cualquier paquete de controladores que lo declare puede funcionar con un dispositivo que tenga ese identificador para cierto grado de funcionalidad. En la mayoría de los casos, un dispositivo tiene más de un identificador de hardware asociado. Normalmente, una lista de identificadores de hardware se ordena de la mayoría a la menos adecuada para un dispositivo. Por ejemplo, la lista de identificadores de hardware conceptuales para un dispositivo podría ser similar a la siguiente:

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

Donde los identificadores de hardware reales representarían esos conceptos mediante cadenas que siguen los requisitos de formato de un identificador de hardware.

Creación de un identificador de hardware para un dispositivo

Los identificadores de hardware se notifican al Administrador de Plug and Play (PnP) por el enumerador de un dispositivo (su controlador de bus). Normalmente, cuando el autor de un controlador de bus necesita crear un nuevo identificador de hardware para un dispositivo que informa a PnP, usa uno de los siguientes formatos genéricos:

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

Este formato es el más común para los dispositivos PnP individuales notificados al administrador Plug and Play (PnP) por un único enumerador.

\*<generic-device-ID>

El asterisco indica que más de un enumerador admite el dispositivo, como ISAPNP y bios.

<device-class-specific-ID>

Para obtener más información, vea Identificadores genéricos.

Una clase de dispositivo existente con su propia convención de nomenclatura establecida podría usar un formato personalizado. Para obtener información sobre sus formatos de identificador de hardware, consulte la especificación de hardware de dichos buses.

El número de caracteres de un identificador de hardware, excepto un terminador NULL, debe ser menor que MAX_DEVICE_ID_LEN. Esta restricción se aplica a la suma de las longitudes de todos los campos y de los separadores de campo de \\ en un identificador de hardware. Para obtener más información, consulte la sección Operaciones de IRP_MN_QUERY_ID.

Identificadores de hardware para dispositivos enumerados en el nivel raíz

Los dispositivos enumerados raíz son especiales en que se pueden crear mediante API en las que se puede proporcionar un identificador de hardware. Los dispositivos enumerados raíz con identificadores de hardware que comparten espacios de nombres genéricos como ROOT\SYSTEM podrían entrar en conflicto y provocar un ícono de advertencia amarillo en el Administrador de dispositivos durante la actualización de Windows.

Puede evitar este error al utilizar un espacio de nombres único para cada controlador que tenga un dispositivo enumerado raíz. Para un dispositivo USB o del sistema, en lugar de usar ROOT\USB o ROOT\SYSTEM" use ROOT\[COMPANYNAME]\[DEVICENAME]. Después, antes de instalar, compruebe si el nodo devnode ya está presente.

Obtención de la lista de identificadores de hardware para un dispositivo

Para buscar la lista de identificadores de hardware de un dispositivo determinado, siga estos pasos:

  1. Abra el Administrador de dispositivos.
  2. Busque el dispositivo en el árbol.
  3. Seleccione el dispositivo con el botón derecho y seleccione Propiedades.
  4. Seleccione la pestaña Details (Detalles).
  5. En el desplegable Propiedad, seleccione Identificadores de hardware o Identificador compatibles.

La lista de identificadores de hardware también se puede obtener mediante programación recuperando la propiedad DEVPKEY_Device_HardwareIds en un dispositivo. Por ejemplo, esa propiedad se puede recuperar con API como IoGetDevicePropertyData, SetupDiGetDevicePropertyo CM_Get_DevNode_Property.

La lista de identificadores de hardware que recupera esta rutina es un valor REG_MULTI_SZ. El número máximo de caracteres de una lista de hardware, incluido un terminador NULL después de cada identificador de hardware y un terminador NULL final, es REGSTR_VAL_MAX_HCID_LEN. El número máximo posible de identificadores en una lista de identificadores de hardware es 64.

Ejemplos de identificadores de hardware

Este es un ejemplo de un identificador genérico para un dispositivo PnP:

root\*PNP0F08

Este es un ejemplo de un identificador de para un dispositivo PCI:

PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02