Откуда получен информация в диалоговом окне «Безопасность Windows во время установки драйверов»?
-
26-10-2019 - |
Вопрос
В настоящее время мы работаем над драйвером устройства 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 из сертификата, используемого для подписи драйвера.
Может быть, есть еще немного больше, поэтому, пожалуйста, добавьте дополнительную информацию. Но, надеюсь, это, по крайней мере, поможет кому -то ищет ту же информацию в правильном направлении.