¿De dónde proviene la información en el cuadro de diálogo de seguridad de Windows durante la instalación del controlador?

StackOverflow https://stackoverflow.com/questions/8809825

Pregunta

Actualmente estamos trabajando en un controlador de dispositivo Windows basado en el marco WindRiver (no realmente la parte importante) de Jungo. Tenemos un certificado VeriSign y no hay problemas con el proceso de firma o la funcionalidad del controlador.

Sin embargo, durante las pruebas de instalación (en Windows 7) estamos viendo un comportamiento extraño con respecto al diálogo de seguridad de Windows que solicita la confirmación de instalación durante la instalación del controlador.

En ese cuadro de diálogo, parecen mostrarse 3 campos (cita ascii'fied):

+----------------------------------------------------------------------+
| Windows Security                                                     |
+----------------------------------------------------------------------|
| Would you like to install this device software?                      |
|                                                                      |
| Name: <SOMETHING A> <SOMETHING B>                                    |
| Publisher: <COMPANY>                                                 |
|                                                                      |
+----------------------------------------------------------------------+
| <> Always trust software from "<COMPANY>"  [INSTALL] [DON'T INSTALL] |
+----------------------------------------------------------------------|
| Security info / warning etc.                                         |
+----------------------------------------------------------------------+

Ahora por alguna razón <SOMETHING A> y <SOMETHING B> son el mismo texto. Lo que hace que el diálogo se vea un poco extraño. Esta información proviene del archivo INF (al menos eso es lo que creo en este momento), pero hasta ahora no pude encontrar información detallada sobre dónde lo lleva.

En este momento parece que repite el contenido de la información del "proveedor" en el archivo INF dos veces por alguna razón desconocida (al menos para mí).

¿Alguien tiene más experiencia en esta área (archivos INF, instalaciones de controladores, etc.) una idea qué podría causar este comportamiento?

¿O tal vez un enlace a más información sobre qué información del archivo INF se utiliza en estos diálogo?

Gracias por tomarse el tiempo de leer esto y cualquier consejo sobre el problema.
-T

Pequeña actualizaciónSolo la primera parte (<SOMETHING A>) parece salir del inf. Lo que hace que el origen o la segunda parte sea aún más desconcertante ...

Actualización 2Copia de la solicitud INF (<...> son ediciones de contenido)

[Version]
Signature=$CHICAGO$

Provider=%PROVIDERNAME%

CatalogFile.NTamd64=<SOME CAT FILE NAME>.cat

DriverVer=<DATE>,<VERSION>

Class=<OUR COMPANY>
ClassGuid={<OUR CLASS ID>}

;---------------------------------------------------------------;
; Driver Information
;---------------------------------------------------------------;
[Manufacturer]
%PROVIDERNAME%=DeviceList,NTamd64

; x86 platform, Win9x, Windows 2000 and later
[DeviceList]
%DESCRIPTION%=DriverInstall,*<OUR DRIVER HANDLE>

; x64 platform, Windows XP x64 edition and later
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall,*<OUR DRIVER HANDLE>

;---------------------------------------------------------------;

;---------------------------------------------------------------;
; Source/Destination Information
;---------------------------------------------------------------;
[DestinationDirs]
DefaultDestDir=10,System32\Drivers

[SourceDisksFiles]
<OUR DRIVER NAME>.sys=1

[SourceDisksNames]
;1=%INSTDISK%,,,.
;Delete the above line and uncomment the next line for WHQL
1 = %INSTDISK%,<SOME CAT FILE NAME>.cat,,

;---------------------------------------------------------------;

;---------------------------------------------------------------;
; Installation Section
;---------------------------------------------------------------;

; Installation script for Windows 2000 and later
[DriverInstall.NT]
CopyFiles=DriverCopyFiles

[DriverCopyFiles]
<OUR DRIVER NAME>.sys,,,0x22    ; COPYFLG_NOSKIP | COPYFLG_NO_VERSION_DIALOG

[DriverInstall.NT.hw]
AddReg=DriverHwAddReg

[DriverHwAddReg]
HKR,,SampleInfo,,""

; Register a new class in Windows 2000 and later
[ClassInstall32]  ; Register a new class in Windows 2000 and later
AddReg=UpDateRegistry

[UpDateRegistry]
HKR,,,,<OUR COMPANY>
HKR,,Icon,,-5

; Add device driver service
[DriverInstall.NT.Services]
AddService=<OUR SERVICE NAME>, 0x00000002, DriverService

[DriverService]
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\<OUR DRIVER NAME>.sys

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
PROVIDERNAME=<THE NAME THAT SHOWS UP TWICE (BUT NOT REALLY)>
DESCRIPTION=<SOME DESCRIPTION>
INSTDISK="Driver Installation Disk"

los <THE NAME THAT SHOWS UP TWICE (BUT NOT REALLY)> es lo que aparece en <SOMETHING A>.

Sin embargo, como se señaló con la pequeña actualización 1, cambiar este valor solo conduce a un cambio en dicho <SOMETHING A> Pero no la otra parte.

Después de cambiar algunas cosas para probar el valor que se muestra en <SOMETHING B> Parece aparecer "fuera de la nada" ya que no puedo encontrarlo en el archivo INF o RC del controlador.

¿Fue útil?

Solución

El nombre en el mensaje proviene de la directiva DriverPackageGeGeGeDeSplayName del archivo INF y el editor proviene de la firma verificada en el archivo CAT.

Fuente: http://www.davidegrayson.com/signing/

Otros consejos

Junto con alguna otra fuente (gracias a todas las personas en NTDEV en Osronline.com [especialmente Maxim]) y algunas cavaciones en el registro creemos que finalmente pudimos resolver el origen del contenido del diálogo. A continuación se muestran las cosas que encontramos:

Usando el ejemplo de diálogo nuevamente:

+----------------------------------------------------------------------+
| Windows Security                                                     |
+----------------------------------------------------------------------|
| Would you like to install this device software?                      |
|                                                                      |
| Name: <SOMETHING A> <SOMETHING B>                                    |
| Publisher: <COMPANY>                                                 |
|                                                                      |
+----------------------------------------------------------------------+
| <> Always trust software from "<COMPANY>"  [INSTALL] [DON'T INSTALL] |
+----------------------------------------------------------------------|
| Security info / warning etc.                                         |
+----------------------------------------------------------------------+

Los campos parecen resolverse de la siguiente manera:

<SOMETHING A> Parece igualar el valor en el "proveedor" en su archivo INF

<SOMETHING B> Parece tener múltiples casos:

  • En los casos en que la clase de dispositivo ya existe, este valor es igual al valor de "classDesC" en la clave de registro apropiada. (Encontrado en: HKLM\SYSTEM\ControlSet001\Control\Class\<The GUID of your device class>)
  • Sin embargo, para las clases de dispositivos internos del sistema, el valor parece no mostrarse, aunque "classdesc" no está vacío. También podría ser que el valor no se resuelva correctamente o simplemente se ignore "por elección" en estos casos.
  • No se mostrará nada si esta instalación en particular es la primera vez que se introduce esta clase de dispositivo en el sistema.

<COMPANY> Parece ser simple igual al valor CN del certificado utilizado para firmar el controlador.

Tal vez todavía haya un poco más, así que no dude en agregar información adicional. Pero espero que esto al menos ayude a señalar a alguien que busque la misma información en la dirección correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top