Uso de un archivo * .inf del Driver Development Wizard en Windows 8 y 10

Actualizado el Nov 28, 2019

Reportado en

Controlador

  • NI-VISA

Sistema Operativo

  • Windows

Detalles del problema

¿Cómo puedo firmar un archivo INF generado por el Asistente de desarrollo de controladores (Driver Development Wizard o DDW) para poder instalarlo en una máquina con Windows 8 (o superior)?

Solución

Los archivos INF generados por el Asistente de desarrollo de controladores (DDW) para vincular dispositivos a NI-VISA no se firman cuando se crean. Las computadoras con Windows 8 (o superior) requieren que los archivos INF estén firmados antes de que puedan instalarse en una máquina.

Siga estos pasos para instalar un INF generado por el DDW en una máquina con Windows 8:

1. Genere un catálogo (.cat) desde el INF.
  1. Abra el command prompt como administrador.
  2. Navegue hasta el directorio que contiene la herramienta Inf2Cat.
  3. Usando el siguiente comando, crea el archivo.
Sintaxis: Inf2Cat / driver: <path> / os: <os1> [, <os2>] ...

<path> : ruta al directorio que contiene el archivo INF. El archivo INF debe estar en un directorio (por ejemplo, no puede ser un archivo independiente en la unidad C). La INF ya tiene el nombre del archivo cat para generar.

<osn> : el sistema operativo compatible: por ejemplo, 2000, XP_X86, Vista_X64, 7_X86, 8_X64, 10_X86, 10_X64, etc.
Para obtener más información sobre el soporte del sistema operativo, consulte Enlace externo: Zona de desarrollo de Microsoft: Inf2Cat .

Salida: Si <path> contiene un archivo * .inf, este comando creará un archivo * .cat correspondiente junto a él.

2. Obtenga o cree un certificado que se pueda usar para firmar el * .cat.
  • Debe comunicarse con una Autoridad de Certificacióno bien Certificate Authority (CA) para obtener un certificado que pueda usar para firmar todos sus controladores e INF's. Un certificado normalmente tiene un par de claves, públicas y privadas. La clave pública se distribuye a los clientes que necesitan usar el binario / INF firmado. La clave privada solo está disponible para el propietario del certificado y se utiliza para firmar cualquier cosa que deba ser firmada. La clave privada debe estar protegida y no distribuida. La clave pública tiene suficiente información para verificar el propietario del certificado. Por lo general, hay una tarifa anual que se debe pagar a la CA para obtener y usar el certificado de ellos.
  • Si no está distribuyendo el INF a sus clientes y solo necesita usarlo en su propia máquina, es posible que desee crear un certificado de prueba "personal". Este certificado, junto con la clave privada, se puede instalar en una máquina de desarrollo donde generará el archivo * .cat y lo firmará con ese certificado. Estos certificados personales (extensión .pfx, en este caso) se pueden generar utilizando una variedad de aplicaciones de terceros como Adobe Reader, el SDK de Java y openssl para distribuciones de Linux. Para obtener más información sobre cómo crear un certificado de prueba personal, consulte la página Certificado de prueba MakeCert de Microsoft.
3. Firme el .cat utilizando el certificado.

Navegue al directorio que contiene SignTool del command prompt. 

Sintaxis: signtool  sign options<filename(s)>

Ejemplos:
  • Si el par de clave privada / pública está en un archivo (en formato .pfx):
signtool sign / f C: \ mycertificate.pfx / p mypfxpassword c: \ mycatfile.cat
  • Si la clave está instalada en la máquina dev:
signtool sign / n mycertificatename C: \ mycatfile.cat

4. Instale el certificado público en la máquina de Windows 8 de destino antes de instalar el INF.

Una vez que el archivo * .cat se firma con la clave privada, el archivo * .inf, el archivo * .cat firmado y el certificado público se pueden distribuir juntos para instalar la cadena de certificados hasta una 'AC raíz de confianza'. Si es un certificado personal, necesita ser instalado. Si el certificado se obtuvo de una AC, ya tiene un certificado de  confianza instalado conocido como 'Trusted Root'.

Para instalar el certificado:
  1. Haga clic con el botón derecho en el certificado público (* .cer creado por una aplicación de terceros) y seleccione Install Certificate .
  2. En el cuadro de diálogo que aparece, seleccione Local Machine y presione Next .
  3. En el siguiente cuadro de diálogo, elija Place all certificates in the following store, presione el botón Browse y elija Trusted Root Certification Authorities de la lista.
  4. Presione Ok para volver al asistente de importación y presione Next . Presione Finish . Presione OK cuando aparezca el cuadro de diálogo de confirmación.
Para ver los certificados instalados en el sistema, siga los siguientes pasos:
  1. Ejecute el comando mmc para iniciar Microsoft Management Console
  2. En el menú, elija File » Add/Remove Snap-in...
  3. En el cuadro de diálogo, haga clic en Certificates y presione el botón Add en el centro del cuadro de diálogo.
  4. En el cuadro de diálogo que aparece, elija el botón de opción Computer account y presione Next y Finish .
  5. Presione OK
En la MMC, ahora puede ver los certificados instalados para el usuario actual. El certificado que se importó debe estar bajo las Autoridades de certificación de confianza (en inglés suele llamarse Trusted Root Certification Authorities ). Si no lo está, puede hacer clic con el botón derecho en Certificates (current user) y luego elegir Find Certificates ... Una vez que se encuentra, puede copiar (o cortar) y pegarlo bajo las Autoridades de certificación de confianza.

Si su dispositivo aparece como dispositivo compatible con HID después de que pueda ver los certificados instalados, vuelva a crear el archivo * .inf pero mantenga en blanco el fabricante del dispositivo y el nombre del modelo.

 

Información adicional

1. Generar un catalogo (.cat) del INF. 
Esto se puede hacer utilizando la herramienta Inf2Cat que proporciona Microsoft a través del Windows Driver Kit (WDK). Esta herramienta generalmente se instala en: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x86. Asegúrese de utilizar WDK V8.0 para obtener soporte en Windows 8 y WDK V10 para obtener soporte en Windows 10.
Para obtener más información sobre el soporte del sistema operativo, consulte Enlace externo: Microsoft Dev Zone: Inf2Cat.

2. Obtenga o cree un certificado que pueda usarse para firmar el * .cat.
  • Un certificado generalmente tiene un par de claves, públicas y privadas. La clave pública se distribuye a los clientes que necesitan usar el binary / INF firmado. La clave privada solo está disponible para el propietario del certificado y se utiliza para firmar cualquier cosa que deba firmarse. La clave privada debe estar protegida y no distribuida. La clave pública tiene suficiente información para verificar el propietario del certificado. Por lo general, se debe pagar una tarifa anual a la CA para obtener y usar el certificado de ellos.
  • Si no está distribuyendo el INF a sus clientes y solo necesita usarlo en su propia máquina, puede crear un certificado de prueba "personal". Este certificado, junto con la clave privada, se puede instalar en una máquina de desarrollo donde generará el archivo * .cat y lo firmará utilizando ese certificado.
  • Agregue la clave al certificado y luego exporte el certificado.
3. Firme el .cat con el certificado.

Una vez que se genera el archivo * .cat y se instala el certificado privado en una máquina de desarrollo, el archivo * .cat se puede firmar con ese certificado. Microsoft proporciona una herramienta para firmar los INF, llamada SignTool con el WDK. Se encuentra en la misma carpeta que la herramienta Inf2Cat: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x86. Tenga en cuenta que el WDK puede requerir una determinada versión de Visual Studio para usar SignTool. Este requisito aparecerá en la página de descarga de WDK.

Además, hay otra herramienta disponible desde Windows Platform SDK. Después de instalar el SDK de Windows 7, la herramienta se ubicará en: C: \ Program Files (x86) \ SDK de Microsoft \ Windows \ v7.0A \ Bin.

4. Instale el certificado público en la máquina Windows 8 de destino antes de instalar el INF.
Una vez que el archivo * .cat se firma con la clave privada,  el *.inf file, signed *.cat file y el certificado público se pueden distribuir juntos para instalar la cadena de certificados hasta una 'Trusted Root CA'. Si se trata de un certificado personal, debe instalarse. Si el certificado se obtuvo de una CA, ya tiene una confianza instalada como 'Trusted Root'.

Nota: 
Windows 8 (o superior) requiere que los archivos INF se firmen antes de poder instalarlos en su ordenador. Windows 7 no requiere esto. Para propósitos de prueba, si está utilizando un dispositivo USB con NI VISA, puede probar en Windows 7 usando las instrucciones en la página Tutorial de control de instrumentos USB .