ドライバーのインストール中のWindowsセキュリティダイアログに関する情報はどこから来たのですか?
-
26-10-2019 - |
質問
現在、JungoのWindriver(実際には重要な部分ではない)フレームワークに基づいたWindowsデバイスドライバーに取り組んでいます。 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ファイルの「プロバイダー」情報のコンテンツが、未知の(少なくとも私にとっては)理由で2回繰り返されるようです。
この領域でより多くの経験を持つ人(INFファイル、ドライバーインストールなど)は、この動作を引き起こす可能性のあるアイデアを持っていますか?
または、これらのダイアログで使用されるINFファイルからの情報に関するいくつかの情報へのリンクはありますか?
これを読んでくれてありがとう、そして問題に関するアドバイスをしてくれてありがとう。
-t
小さなアップデート最初の部分のみ(<SOMETHING A>
)INFから出てくるようです。これは、起源または2番目の部分をさらに不可解にします...
アップデート2リクエストごとのINFのコピー(<...>はコンテンツ編集です)
[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>
ドライバーのINFまたはRCファイルで見つけることができないため、「薄い空気から」表示されるようです。
解決
プロンプトの名前は、INFファイルのDriverPackageDisPlayNameディレクティブからのものであり、パブリッシャーはCATファイルの確認された署名から届きます。
他のヒント
他のソース(Osronline.comのNTDEV [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値に単純に等しいようです。
たぶんもう少しそれがあるので、追加情報をお気軽に追加してください。しかし、うまくいけば、これは少なくとも同じ情報を正しい方向に探している人を指すのに役立つでしょう。