Откуда получен информация в диалоговом окне «Безопасность Windows во время установки драйверов»?

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

Вопрос

В настоящее время мы работаем над драйвером устройства Windows на основе фреймворки Jungo WindRiver (не очень важная часть). У нас есть сертификат Verisign и нет проблем с процессом подписания или функциональностью драйвера.

Тем не менее, во время установки тестирования (в Windows 7) мы наблюдаем некоторое нечетное поведение в отношении диалогового окна безопасности Windows, который запрашивает подтверждение установки во время установки драйвера.

В этом диалоге 3 поля отображаются (цитата 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.                                         |
+----------------------------------------------------------------------+

Теперь по какой -то причине <SOMETHING A> а также <SOMETHING B> тот же текст. Что делает диалог странным. Эта информация поступает из файла INF (по крайней мере, это то, в чем я сейчас верю), но пока я не мог найти подробную информацию о том, откуда она ее взяла.

Прямо сейчас выглядит так, как будто он повторяет содержание информации о «провайдере» в файле Inf дважды для какой -то неизвестной (по крайней мере, для меня) причины.

Есть ли у кого -нибудь больше опыта в этой области (инф, файлы, драйверы и т. Д.) Идея, что может вызвать такое поведение?

Или, может быть, ссылка на дополнительную информацию о том, какую информацию из файла Inf используется в этих диалогах?

Спасибо, что нашли время прочитать это и любые советы по этому вопросу.
-T

Небольшое обновлениеТолько первая часть (<SOMETHING A>) кажется, что выходит из инф. Что делает начало или вторую часть еще более загадочной ...

Обновление 2Копия Inf Per запрос (<...> являются правозами контента)

[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"

А <THE NAME THAT SHOWS UP TWICE (BUT NOT REALLY)> это то, что появляется в <SOMETHING A>.

Однако, как указано с небольшим обновлением 1, изменение этого значения приводит к изменению указанного <SOMETHING A> но не другая часть.

После изменения некоторых вещей для тестирования значения, которое отображается в <SOMETHING B> Кажется, появляется «из воздуха», так как я вообще не могу найти его в файле инф или RC водителя.

Это было полезно?

Решение

Имя в приглашении происходит от директивы inf File PailPackagedIsplayName, и издатель происходит от проверенной подписи в файле CAT.

Источник: http://www.davidegrayson.com/signing/

Другие советы

Вместе с некоторым другим источником (благодаря всем людям в NTDEV на Osronline.com [Esp. Maxim]) и некоторым копанию в реестре, мы считаем, что наконец смогли разрешить происхождение содержания диалога. Ниже приведены вещи, которые мы нашли:

Используя пример диалога снова:

+----------------------------------------------------------------------+
| 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.                                         |
+----------------------------------------------------------------------+

Поля, кажется, решаются следующим образом:

<SOMETHING A> Кажется, равняется значению под «поставщиком» в вашем файле inf

<SOMETHING B> Кажется, есть несколько случаев:

  • В тех случаях, когда класс устройств уже существует, это значение равно значению «classdesc» в соответствующем ключе реестра. (Найдено под: HKLM\SYSTEM\ControlSet001\Control\Class\<The GUID of your device class>)
  • Тем не менее, для классов внутренних устройств системы значение, по -видимому, не отображается, хотя «ClassDesc» не является пустым. Также может случиться так, что значение не разрешается правильно или просто игнорируется «выбором» в этих случаях.
  • Ничего не будет отображаться, если эта конкретная установка впервые введен в систему.

<COMPANY> Кажется, просто равняется значению CN из сертификата, используемого для подписи драйвера.

Может быть, есть еще немного больше, поэтому, пожалуйста, добавьте дополнительную информацию. Но, надеюсь, это, по крайней мере, поможет кому -то ищет ту же информацию в правильном направлении.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top