我们目前正在开发基于 Jungo 的 WinDriver(不是真正重要的部分)框架的 Windows 设备驱动程序。我们有 VeriSign 证书,签名过程或驱动程序功能没有问题。
但是,在安装测试期间(在 Windows 7 上),我们看到一些关于 Windows 安全对话框的奇怪行为,该对话框要求在驱动程序安装期间进行安装确认。
在该对话框中似乎显示了 3 个字段(ASCII 引用):
+----------------------------------------------------------------------+
| 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 文件中“Provider”信息的内容。
有没有在这方面(INF 文件、驱动程序安装等)有更多经验的人知道是什么导致了这种行为?
或者可能是指向更多信息的链接,以了解这些对话框中使用了 INF 文件中的哪些信息?
感谢您抽出宝贵时间阅读本文以及有关此问题的任何建议。
-T
[小更新]
只有第一部分 ( <SOMETHING A> ) 似乎来自 INF。这使得起源或第二部分更加令人费解......
[更新 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 文件中找到它。
最佳答案
连同其他一些来源(感谢 osronline.com [esp. Maxim] 上 ntdev 的所有人员)和对注册表的一些挖掘,我们相信我们最终能够解析对话内容的来源。以下是我们发现的内容:
再次使用对话框示例:
+----------------------------------------------------------------------+
| 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 文件中“Provider”下的值
<SOMETHING B>似乎有多个案例:
HKLM\SYSTEM\ControlSet001\Control\Class\<The GUID of your device class>) <COMPANY>似乎简单地等于用于签署驱动程序的证书中的 CN 值。
也许还有更多内容,请随时添加其他信息。但希望这至少能帮助寻找相同信息的人找到正确的方向。
关于windows - 驱动程序安装过程中 Windows 安全对话框中的信息从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8809825/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr