真的没有人会写自动安装inf打印机驱动程序inf的程序的吗

你真的会顺序安装驱动吗_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
你真的会顺序安装驱动吗
上传于||文档简介
&&如​何​安​装​驱​动​程​序​能​使​机​器​更​快​呢​?​?
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
你可能喜欢当前位置: >
更新时间:
来源:本站小编
浏览:1271次
  的驱动问题一直以来就是一个让无数人吐槽的诟病!各大硬件厂商对于的驱动更新也不是很勤快,原因在于win8系统的市场一直没有办法扩展开来,但是win8系统强制要求驱动签名,不然就会导致安装失败!豆豆系统小编本文全方面介绍双系统下的win8或者但系统下的win8系统如何解决因为强制签名导致驱动安装失败的问题!
  本文采用win8系统64位专业版安装扫描仪驱动。(扫描仪是老型号,只支持Vista)的修改版驱动(把Vista x32的驱动改成了x64的),驱动安装过程提示【第三方INF不包含数字签名信息】,就强制关闭,驱动安装失败。
  豆豆系统温馨提示:此种方法仅在操作后单次有效,如果需要安装其他驱动程序,需要重复下面的步骤。
  文字操作过程解说
  win8双系统下:启动到选系统的时候,选最下面的:更改默认值或选择其它选项&&&选择其它选项&&&疑难解答&&&高级选项&&&Windows启动设置&重新启动,然后选择&禁用驱动程序强制签名&;
  win8单系统:进系统后,[Win]+[C]调出Charm菜单-更改电脑设置-设置-常规-高级启动的立即重启-疑难解答-高级选项-启动设置-重新启动,然后禁用驱动强制签名。
  豆豆网友提供的参考方法分享:开机时,按shift+f8, 选择系统启动菜单中的禁用驱动强制签名模式启动,就可以安装了。&&这个貌似无效,没按出来启动菜单来,有需要的可以多尝试几次。
  操作过程图文解说:
  1、win8专业版64位系统
  2、本地教程采用一个比较老版本的扫描仪,驱动很早就不更新了,只能找到vista版本的驱动,而且就是一个inf文件,所以把ntx86改为ntamd64就可以了,之前在64位版本系统上测试是可以正常安装并且可以使用的!
  3、在win8系统上安装提示&第三方INF不包含数字签名信息&,就结果,安装失败!
  下面豆豆系统小编开始解说解决方法
  1、Charm菜单(就是装好Win8显示你好后面的那个操作方法,在屏幕右侧的角落晃动下鼠标会出现的菜单;如果觉得晃不好的同学直接按[Win]+[C]就可以调出Charm菜单)就是Win 8右侧的那个全屏菜单,找到里面的设置。
  2、、最下面有个更改电脑设置,
  最新更新:按【Win】+【i】可以不需要上面的第4点,直接打开设置。
  3、打开电脑设置后,左侧选择常规,然后右侧选择最后一项立即重启。对,就是要从这里更改Windows启动设置。
  4、这里的重启超级快,连开机自检的POST都没看到,就切换好了!感觉像打了鸡血一样!!!- -!
  5、这里选择疑难解答
  6、这里选择高级选项,其实这里还有很多其他选项(例如初始化电脑?),大家看到就行了,不是本文重点,所以略过不提。
  7、这里选择启动设置,其实这里还有很多其他选项(例如命令提示符,这个很多用途的)。
  备注:这里特别讲一下命令提示符,我之前曾经在这里用ghost恢复系统,但发现x64的Win8,这个地方无法运行32位的Ghost32.exe程序,要用Ghost64.exe才可以。这里相当于PE了,可能与此有关。在x64的桌面环境是可以运行的。
  8、这里才是要真正重启了~难怪刚才那么那么快,原来是假的~屏幕切换了一下而已!
  最新更新:这里是又一次重新启动了!!!!
  之前少了一个图,有兄弟没有意识到下面的12.1和12.2都是启动菜单!
  两种情形而已:9.1是Win8主系统,9.2是多系统且Win8不是主系统。
  9.1、win8双系统:如果你的Win 8是主系统或者单Win 8系统会看到这样的界面,选择7-禁用驱动程序强制签名。我是按的小数字键盘,看屏幕说F7也可以。
  9.2、win8单系统:如果你的Win8不是主系统,在选择Win8按F8会看到这样的界面,选择& Dlsable Driver Signature Enforcement &继续启动即可。这个菜单随着系统版本不同是有不同语言的,中文的话就是&禁用驱动程序强制签名&
  10、进入系统了
  11、这下子更新驱动终于看到了传说中的Windows 安全对话框
  12、成功更新驱动!
  已被确定无效的方法:
  1、组策略中用户配置-管理模板-系统-驱动程序安装-&设备驱动程序的代码签名&,双击,设置选&已启用&,&当windows检测到一个没有数字签名的驱动程序文件时&,选&忽略&,确定。
  2、在管理员模式的Cmd中输入:
  bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
  bcdedit/set testsigning on
  最新更新:这个命令是最近才接触的,听大家说是测试模式。并且会导致已经激活的系统带水印。
  因为之前系统没激活,所以没有办法判断。今天在论坛看到交大的Kms,激活了系统,确实看到右下角的水印了。
  而且再次确认,测试模式是无法强制驱动程序签名的,有图为证!
  3、关于按F8键进入启动菜单的功能,什么F8,CTRL+F8,Shift+F8 都没有用了!想进入的话,就只能从Charm菜单的设置里面更改电脑设置,这里进入启动设置。
  上述论坛中所提供的方法,经过实际测试,在Win8(x64)下无效。
  豆豆系统总结:windows系统的每次升级都带来了一大堆的问题,最为重要的问题就是厂商对于驱动程序的更新,尤其是一些比较老的设备,厂商有的根本就没有更新驱动程序,这也是导致微软官方升级了驱动程序之后而很多用户不愿意升级系统的原因,到现在市场份额还第二位!如果你也遇到相关的驱动安装失败的问题,可以参考此方法进行设置!
& 下一篇:
版权声明:本站收录的文章及教程都是本站小编精心制作,仅供学习交流之用,如转载请注明出处。劳动最光荣,请尊重!
热门系统下载
豆豆系统 Ghost Win8.1 X64 纯净专业版 V位)
深度技术 Ghost Win7 SP1 X64 激活旗舰版 V位)
电脑公司 Ghost Win7 Sp1(64位)自动激活旗舰版 V2015.1
系统安装教程
世界上最简单系统安装方法(适合XP升级win7系统)
u盘安装win7旗舰版系统 图文教程
最简单Ghost Win8/win8.1系统一键硬盘安装图文教程
硬盘一键安装win7系统图解教程(小白也学得会)
xp win7 win8 win8.1 win10 系统重装方法大全
系统故障技巧
WIN7激活软件Chew-WGA0.9完美激活(适用任何机型)
小马OEM8激活工具(一键免费永久激活windows和Office) v 绿色版
系统美化资源2308人阅读
驱动(20)
第十五章.驱动程序的安装&&&
方便的,自动的和容易的安装一个设备驱动程序对于用户来说是一个重要的步骤。对于提供给用户容易的设备管理的即插即用驱动程序, 安装程序是最基本的。&安装一个驱动程序一个后缀是INF的文本文件控制设备驱动程序自动的安装。INF格式类似于WIN
3.x下的老式的.INI文件,但是复杂些。一个INF文件允许自动的或者在对话框的帮助下安装驱动程序文件。 驱动程序安装结束后对系统产生两个持久的影响: 1.& 描述驱动程序的系统注册表入口,它的加载顺序和任何适当的配置数据。 2.& 驱动程序文件被拷贝到适当的系统路径。 INF文件是影响这些改变的标准的机制,它可以提供定制安装。&使用INF文件自动安装&INF文件随着硬件和驱动程序一起提供,INF文件的结构和内容是驱动程序作者的责任。&INF文件结构&INF文件是被分(section)成几个部分的文本文件,每个部分被指定一个标识符号﹐它被中括号([])括起来﹒一些部分的命名是必须的﹐而其它部分是驱动程序特定的﹒每个部分是一些安装动作﹐或者连接或者列举其它部分﹒
文件中各个部分的顺序是不重要的﹐因为每个部分都是被命名和连接的﹒一个部分继续直到另一个部分或者遇到文件结束﹒每个部分的标识符号是独一无二的名字﹐为了保持与WIN98的兼容﹐它的长度被限制在28个字符之内﹐可以包含下划线和圆点字符﹐在引用整个名字的前提下﹐可以包含空格字符﹒ 文件内容的一般格式如下: entry = value [, value...] entry是指令﹐关键词或者文件名﹐value是entry被应用的属性﹒ & & 图15.1. INF文件各部分的连接 entry或者value名字可以指定为一个使用百分号(%)的代替一些具体数据的字符串﹐分割INF文件的[Strings]提供一个特殊语言ID的值﹒&Version
部分&一个有效的INF文件从一个命名为[Version]的部分开始﹐它像一个INF文件的头和标识﹒
“$Windows NT$& &$Windows 95$&& &$Chicago$&的其中一个
驱动程序的整个家族的类名﹒一些名字是预先确定的﹐例如﹐Net或者Display
一个类的独一无二的GUID
INF文件提供者的名字
LayoutFile
只有在系统支持的INF文件中使用﹐OEM支持的INF文件用SourceDisksNames 和 SourceDisksFiles代替
mm/dd/yyyy[,x,y,v,z],必须的条目﹐包含可选的版本信息
表15.1. [Version]部分的条目&Manufacturers部分&另一个必须的部分是[Manufacturers]﹐这个部分的条目列出了可以使用这个INF文件安装的设备和驱动程序﹐条目的形式是:
&&&&&& manufacturer=model manufacturer列出被安装的硬件的制造商的INF文件的唯一名字﹒model提供指向INF文件中另一个进一步安装这个模型的部分的指针﹐&Models
部分罗列在[Manufacturers]部分的每一个模型﹐在文件中必须有相应的部分﹐model部分的每个条目的形式是: device-description=install-section-name,hw-id[,compatible-id...]
device-description描述了设备模型的列表和一个短描述﹒这个字符串在安装的时候在对话框中提供给用户﹐因此它需要提供多种语言的文本﹒ install-section-name的值参考[DDInstall]部分﹐也描述了INF文件的另一个进一步安装的部分﹒hw-id是硬件设备在PnP兼容的总线上声明的时候返回的PnP标识符号﹒例如﹐USB\VID_045E&PID_00B标识微软HID(Human Input Device)的USB键盘设备﹒compatible-id可以是任何表示用于任何的包含在列表中的相同安装脚本的数值﹒&DDInstall
部分&它的名字独一无二的指定从[Models]部分列出的每个制造商的每个模型﹐ AddReg条目在语法上是必须的﹐CopyFiles条目对于[DDInstall]部分是重要的﹐它的形式是:
CopyFiles=file-list-section[,file-list-section...] 或者 CopyFiles=@filename 前者是更普通的版本﹐它允许一个指向另一个包含一个安装文件列表的部分的指针﹒然而对于简单的驱动程序的安装﹐可以直接的使用文件名﹒ &
mm/dd/yyyy[,x,y,v,z]﹐必须的条目﹐包含可选择的版本号码
另一个指定需要复制的文件列表的部分或者一个单独的有”@”为前缀的文件名
必须的﹐另一个包含需要的注册表信息的部分
指向其它的INF文件名指针列表
Include条目的子集﹐列出了它的INF文件中需要的部分
指定另一个需要删除的文件列表的部分(一般是升级的目的)
指定另一个需要重命名的文件列表的部分(一般是存储安装之前的状态)
指定另一个需要删除的系统注册表信息的部分
ProfileItems
指定另一个需要更改系统开始菜单的部分
表15.2. [DDInstall]部分条目&CopyFiles部分&INF文件的[CopyFiles]部分是唯一的名字并且CopyFiles的指示器在[DDInstall]部分﹐它的条目的形式是:
destination-filename[,source-filename,temp-filename,flag]
二进制值
COPYFLG_REPLACEONLY
如果已经有目标文件﹐则复制
COPYFLG_NODECOMP
不解压﹐直接复制
COPYFLG_FORCE_FILE_IN_USE
复制源文件为临时的名字﹐强制重新激活﹐ 重命名临时文件
COPYFLG_NO_OVERWRITE
不替换已存在的文件
COPYFLG_REPLACE_BOOT_FILE
文件是系统加载的一部分﹐强制重新激活
COPYFLG_NOPRUNE
强制复制﹐甚至安装者认为不需要
COPYFLG_NO_VERSION_DIALOG
不重写更新的文件
COPYFLG_NOVERSIONCHECK
总是重写目标文件
COPYFLG_OVERWRITE_ OLDER_ONLY
重写老的目标文件
COPYFLG_WARN_IF_SKIP
如果用户跳过文件﹐则警告
COPYFLG_NOSKIP
不允许用户跳过文件
表15.3. CopyFiles flag的定义 destination-filename是需要复制的文件名﹐如果与源文件名不同﹐source-filename必须被指定﹐temp-filename在WIN98中是为新文件指定一个中间的文件名直到系统重新激活﹐对于WIN2000来说﹐它是无用的﹒
flag值指定新的目标文件的部署﹒这些值可以OR起来使它有多个性质﹒应该确认没有互斥的项目﹒ 因为[CopyFiles]条目的语法不包含指定源文件的磁盘或者路径选项﹐所以﹐必须使用其它的INF文件的部分[SourceDisksNames]和[SourceDisksFiles]﹒[CopyFiles]是复制的源文件名﹐复制的目标则在[DestinationDirs]部分﹒&AddReg部分&INF文件的[AddReg]部分是唯一的名字﹐并且引用AddReg的指示器在[DDInstall]部分﹒这个部分的目的是提供在系统注册表中添加或者修改条目﹐形式是﹕
reg-root[,subkey,value-name,flags,value] reg-root是注册表根的缩写﹐子键描述根键下的键名﹐使用反斜线字符(\)分开子键﹒例如﹐Software\W2KDriverBook\ Driver\Setting是有效的HKCU或者HKLM根键的子键﹒
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
设备安装的硬件子键
表15.4. AddReg reg-root缩写的意义 value-name指定被添加或者修改注册表值﹒每个系统注册表键包含零个或者多个不同数据类型的值﹒注册表编辑器在右边的窗格列出了子键的值﹒值的名字和值的数据也一起显示出来﹒左边的窗格仅仅显示子键﹒flags指定数据的类型﹒
二进制值
FLG_ADDREG_TYPE_SZ
以零为结束的字符串
FLG_ADDREG_BINVALUETYPE
二进制数据
FLG_ADDREG_NOCLOBBER
不替换现有的值
FLG_ADDREG_DELVALUE
删除子键或者值的名字
FLG_ADDREG_KEYONLY
创建子键﹐不顾值
FLG_ADDREG_OVERWRITEONLY
如果值存在﹐替换它﹐否则什幺也不作
FLG_ADDREG_TYPE_MULTI_SZ
REG_MULTI_SZ值(数组)
FLG_ADDREG_APPEND
附加到存在的REG_MULTI_SZ数组
FLG_ADDREG_TYPE_EXPAND_SZ
REG_EXPAND_SZ数据
FLG_ADDREG_TYPE_DWORD
DWORD值
FLG_ADDREG_TYPE_NONE
REG_NONE值
表15.5. AddReg flags定义 系统注册表对于驱动程序安装的重要性将在后面讨论﹒&SourceDisksNames
部分&如果INF文件包含的驱动程序文件分布在多个磁盘上﹐INF文件就必须包含[Source-DisksNames]部分﹐这个部分包含文件分布的每个磁盘的人口﹒ diskid=disk-description[,tagfile,unused,path]
diskid是唯一的分配设置中的名字﹒通常﹐磁盘号从1开始﹐disk-description是一个提示用户合适的磁盘的字符串﹒ tagfile值有双重的作用﹒确定在安装过程中用户提供正确的磁盘﹐tagfile值在安装过程继续进行之前被检验﹐如果tagfile文件不存在﹐用户被重新提示插入正确的磁盘﹒如果agfile值包含.CAB的扩展名﹐表示磁盘上的驱动程序文件是压缩文件﹒ path值是一个以root-relative为磁盘根目录的驱动程序文件的路径﹒像tagfile值一样是可选择的﹒&SourceDisksFiles
部分&INF文件必须包含一个[SourceDisksFiles]部分﹒这个部分列出了在安装驱动程序过程中使用的文件名﹒每个文件都有相应的条目﹒ filename=diskid[,subdir,size]
diskid值是一个[SourceDisksNames]部分指定的可以找到文件名的磁盘﹐可选的subdir值指定文件的路径﹒可选的size值指定解压缩文件的字节大小﹐安装过程使用这个数据在尝试复制文件之前决定目标系统是否适合安装﹒&DestinationDirs部分&这是个必须的提供目标路径的部分﹒
file-list-section=dirid[,subdir] 或者 DefaultDestDir=dirid[,subdir] file-list-section是一个被[CopyFiles]的指示器唤起的部分﹒它指定所有的被指示器复制的文件安装到指定的路径﹒对于DefaultDestDir﹐用于[CopyFiles]中所有的指示器﹐通常与file-list-section联合使用﹒
%windir%\system32\drivers 对于 Windows 2000 %windir%\system\IoSubsys 对于 Windows 98
%windir%\system32 对于 Windows 2000﹐ %windir%\system对于 Windows 98
根驱动器的根路径
Windows 2000的根路径
这个INF文件的路径
INF文件的路径
Fonts的路径
假脱机的路径
假脱机的驱动程序路径
打印机处理机路径
Color (ICM)
Viewers路径
User Profile路径
应用软件路径
All Users\Start Menu
All Users\Start Menu\Programs
All Users\Start Menu\Programs\Startup
All Users\Desktop
All Users\Favorites
All Users\Application Data
Program Files
Program Files\Common
All Users\Templates
All Users\Documents
表15.6. DestinationDirsdirid定义&DDInstall.Services
部分&为了让复制的文件在目标系统中起驱动程序的作用﹐必须通知服务控制管理器(SCM)﹐在WIN2000中安装的每个驱动程序在注册表的HKLM\System\CurrentControlSet\Services下面﹐ServiceType值是1表示内核模式的驱动程序﹒StartType指出在系统引导过程中在何时加载驱动程序﹒ErrorControl值决定在驱动程序加载的过程中如果遇到错误后如何是好﹒ServiceBinary值指出驱动程序的位置(.SYS文件)﹒但是可能会被遗漏﹐如果二进制文件在%windir%\system32\drivers路径并且与HKLM\...\Services下面的子键名的名字相同的时候就发生这种情况﹒
DDInstall.Services部分条目的形式是﹕ AddService=ServiceName,[flags],service-install- section[,eventlog-install-section] ServiceName描述服务的名字﹐典型的是驱动程序的名字(没有.SYS扩展名)﹐
二进制值
ASSOCSERVICE
驱动程序是一个FDO﹐不是滤波驱动程序
NOCLOBBER_DISPLAYNAME
不重写friendly名字
NOCLOBBER_DESCRIPTION
不重写Description
NOCLOBBER_STARTTYPE
不重写starttype
NOCLOBBER_ERRORCONTROL
不重写错误控制
表15.7. AddService flags定义 service-install部分和可选的eventlog-install部分唤起附加的控制服务值条目的INF部分(例如﹐ServiceType和StartType)﹒&ServiceInstall
部分[ServiceInstall]部分﹐它的名字在DDInstall.Services部分的AddService条目中唯一指定﹐控制和安装驱动程序到服务控制管理器﹒
DisplayName
驱动程序的Friendly名字﹐显示在设备管理器中
Description
简短的描述驱动程序或者服务的目的﹐显示在设备管理器中
ServiceType
驱动程序类型: 0x01 -内核驱动程序﹐0x02 -文件系统驱动程序
何时驱动程序加载: 0 -引导时﹐1 -系统开始时 && &2 -系统开始后自动加载﹐3 -需要时手动﹐4 -禁止使用
ErrorControl
驱动程序加载时错误部署: 0 -忽视所有错误﹐1 -显示错误给用户﹐ 2 -使用最后的良好状态重新激活﹐忽视错误﹐ 3 -使用最后的良好状态重新激活﹐调试错误
ServiceBinary
驱动程序的全路径名﹐可能包含dirid值
表15.8. ServiceInstall 部分条目&INF
例子&前面介绍的INF文件好象非常复杂﹐这里使用一个例子说明它﹒在下面的例子中﹐INF控制一个由两个文件组成的驱动程序﹒Launcher.SYS被复制到系统的驱动程序路径﹐Launcher.HLP被复制到系统的帮助路径(例如﹐
WINNT\System32\Drivers和WINNT\Help)﹒ [Version] Signature=&$Windows NT$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Class=Missiles ClassGUID={C9B3D080--93FC-}&&&&&& Provider=W2KDriverBook DriverVer=07/04/.2468.1 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
; 注释在分号(;)后面 [DestinationDirs]&&&&&&&&&&&&&&&&&&&&&&&&&& ; 指定文件复制的目的地 DefaultDestDir=12&&&&&&&&&&&&&&&&&&&&&&&&&& ; %windir%\system32\drivers CopyLaunchHelp=18&&&&&&&&&&&&&&&&&&&&&&&&& &; standard help directory & &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;[DefaultInstall]&&&&&&&&&&&&&&&&&&
;默认的安装。(即右击后点安装后的执行,有些人讲点安装了,可文件还是没有复制过去,就是这个没加的原因。)
;Copyfiles=BULKUSB.Files.Ext, BULKUSB.Files.Inf
;AddReg=BULKUSB.AddReg& & & [Manufacturer]&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&普通的安装软件的.INF文件中,不包括[Manufacturer]
与[Manufacturer Name] 节,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;即使包含,也不会执行它们,这2
个节仅仅用于硬件的设备驱动中起作用。W2KDriverBook=MyMfgName&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & ; 唤起model部 [MyMfgName]&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 开始一个Models部分&&ISA
Missile Launcher&=InstallLauncher,ISA\Launcher&&; 我们的设备列表 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;&&ISA Missile Launcher&表对要安装的设备的描述,如果此设备被安装,那么此名字是出现在设备管理器中的名字&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
; InstallLauncher是此设备的安装节点&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;,ISA\Launcher&是指设备ID&&[InstallLauncher]&&&&&&&&&&&& &&&&&&&&&&&&&; 开始DDInstall 部分 CopyFiles=CopyLaunchFiles&&&&&&&&&&&&&&&&
; 唤起CopyFiles 部分. CopyFiles=CopyLaunchHelp&&&&&&&&&&&&&&&&& ; 另一个是help的 AddReg=LaunchRegSection&&&&&&&&&&&&&&&&&&&& ; 唤起AddReg 部分 [CopyLaunchFiles]&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 开始CopyFiles部分 Launcher.sys [CopyLaunchHelp]&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; Help文件的CopyFiles部分
Launcher.hlp [LaunchRegSection]&&&&&&&&&&&&&&&&&&&&&&&&&& ; 开始AddReg 部分 HKR,&Parameters&,&Coordinates&,FLG_ADDREG_TYPE_DWORD,0 ; 给设备提供一个是0的DWORD值 [SourceDisksNames]& &&&&&&&&&&&&&&&&&&&&&&&&&&; 这个部分不是真的需要﹐ 1=&Missile Launcher Driver Files&&&&&&&&&& ; 因为只有两个文件并且在同一个磁盘上
[SourceDisksFiles] Launcher.sys=1&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 类似的﹐因为它们在同一个磁盘上﹐ Launcher.hlp=1&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;所以不是真正的需要这个部分 [InstallLauncher.Services]&&&&&&&&&&&&&&&&&& ; DDInstall.Services部分 AddService=Launcher,2,LaunchService &[LaunchService]&&&&&&&&&&&&&&&&&&&&&&&&&&&&
; 设置SCM﹐这样驱动程序就可以运行了 ServiceType=1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 驱动程序 StartType=3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&; 需要时手动加载 ErrorControl=1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 汇报错误 ServiceBinary=%12%\Launcher.sys&&&&&&&&&& ; 驱动程序路径&使用INF文件&一旦驱动程序的INF创建完成﹐必须处理它﹐使它有用﹒&手动安装&手动的处理INF文件﹐必须使用Windows的文件管理器选择INF文件﹐右击这个文件﹐选择安装﹒
在真正的即插即用环境中﹐插入或者移除设备触发相应的驱动程序的安装﹐加载和卸载﹒因此﹐保留手动的安装是为了最初的测试和调试驱动程序﹒&自动安装&当一个即插即用的设备被插入到一个系统﹐数个子系统相互作用来加载新的驱动程序﹒
&&&&&&& 1.& 当设备被插入﹐硬件使用自动侦测和自动配置﹐告诉总线驱动程序设备出现﹒依赖于总线硬件﹐这可能涉及通知总线驱动程序一个新的总线设备列举发生﹒在这一步的最后﹐驱动程序发现新的设备出现并且有一个指定的设备ID﹒ 2.& 内核模式PnP管理器通知用户模式PnP管理器一个新的有一个指定ID的设备出现在系统中﹒ &&&&&&& 3.& 用户模式PnP管理器使用WIN2000的Setup API库为新的设备提供一个类似的驱动程序列表﹒为了合适的驱动程序﹐系统使用新设备的class和model查找系统的INF目录(例如﹐WINNT\INF)﹒
&&&&&&& 4.& 如果不能找到合适的INF文件﹐系统不进行进一步的动作直到一个有特权的用户进入系统﹒用户被提供一个新的硬件向导﹒用户提供驱动程序的位置和合适的INF文件位置﹒ &&&&&&& 5.& 一旦找到INF文件﹐它被使用CfgMgr API库处理﹒驱动程序文件和注册表条目被安装和修改﹒内核模式的PnP管理器主要执行这个步骤﹒ &&&&&&&& 6.& 基于INF文件的指导﹐内核模式PnP管理器加载任何低层的滤波驱动程序﹐然后是functional驱动程序﹐最后是高层的驱动程序﹒在堆栈中的高层的驱动程序然后发送适当的PnP信息﹐包括IRP_MN_START_DEVICE.&添加/移除硬件向导&在安装过程中﹐主要的与用户的交互是添加新硬件向导﹒注意有一个制造商的列表(来自于INF文件的[Manufacturers]部分)﹐和Models列表(来自于INF文件的[Models]部分)﹒
通常﹐用户手动选择适当的驱动程序去安装和加载﹒如果驱动程序被安装﹐它的DriverEntry和AddDevice例程必须仍然有效﹐这样使请求驱动的硬件满意新代码的设置﹒换句话说﹐手动的选择可能成功的安装﹐但是初始化是失败的﹒&Class名字和设备IDs&即插即用设备自动安装的过程很大程度上依赖安装程序的定位合适驱动程序的INF文件和文件中各个部分的能力﹒这个部分文章的目的是解释Class名字和设备Ids﹐还有定位INF文件的过程﹒
每个即插即用设备应该有一个唯一的指定硬件模型的标识符号﹒因此提供设备ID给即插即用总线硬件和总线驱动程序﹒当然﹐总线驱动程序在新的设备被插入后的很短时间内请求设备ID﹒设备ID的形式与总线类型有关﹒但是﹐一般看起来是:
&enumerator&\&enumerator-specific-device-ID& (例如﹐PCI\VEN_1000&DEV_0001&SUBSYS_&REV_02) 对于驱动程序代码﹐一个硬件设备可能汇报多个设备ID﹐它是设备功能上的与很多models兼容的陈述﹒因为INF文件的[Models]部分包含一个hw-id值﹐所以﹐寻找与新安装的设备返回的设备ID相匹配的INF文件中的条目非常简单﹒同样的INF条目允许相兼容硬件的列表的规范有附加的设备Ids形式﹒如果设备ID不能在INF文件中定位精确的匹配﹐就使用兼容的ID﹒
另一个为设备定位合适的驱动程序的关键元素是安装类(Setup Class)的观念﹒一系列相关的设备可以共享分层的驱动程序
(例如﹐upper或者lower滤波器)﹐甚至在堆栈中个别的驱动程序﹒安装类被GUID 和name唯一的标识﹒微软定义了一系列驱动程序类﹐新的类可能被定义新的硬件组﹒创建新的组之前﹐必须选择一个新的GUID和class名字﹒
1394火线控制器&
{6bdd1fc1-810f-11d0-bec7-0f}
{a4-11d0-bcf7-00aa00b7b32a}
CD-ROM设备
{4d36e965-e325-11ce-bfc1-0}
{4d36e967-e325-11ce-bfc1-0}
显示适配器
{4d36e968-e325-11ce-bfc1-0}
FloppyDisk
软盘控制器
{4d36e980-e325-11ce-bfc1-0}
硬盘控制器
{4d36e96a-e325-11ce-bfc1-0}
人性化的输入设备
{745a17a0-74d3-11d0-b6fe-00a0c90f57da}
{6bdd1fc6-810f-11d0-bec7-0f}
{6bdd1fc5-810f-11d0-bec7-0f}
{4d36e96b-e325-11ce-bfc1-0}
存储器技术驱动程序
{4d36e970-e325-11ce-bfc1-0}
多媒体设备
{4d36e96c-e325-11ce-bfc1-0}
调制解调器
{4d36e96d-e325-11ce-bfc1-0}
{4d36e96e-e325-11ce-bfc1-0}
{4d36e96f-e325-11ce-bfc1-0}
Multifunction
多功能设备
{4d36e971-e325-11ce-bfc1-0}
网络适配器
{4d36e972-e325-11ce-bfc1-0}
网络客户机
{4d36e973-e325-11ce-bfc1-0}
NetService
网络服务器
{4d36e974-e325-11ce-bfc1-0}
{4d36e975-e325-11ce-bfc1-0}
PCMCIA适配器
{4d36e977-e325-11ce-bfc1-0}
端口(COM & LPT)
{4d36e978-e325-11ce-bfc1-0}
打印机设备
{4d36e979-e325-11ce-bfc1-0}
{71a27cdd-812a-11d0-bec7-0f}
{4d36e97d-e325-11ce-bfc1-0}
{36fc9e60-c465-11cf-40000}
表15.9. 安装类: 名字和GUIDs&&自定义安装&驱动程序一般提供两个定制驱动程序安装的信息﹒
第一﹐提供一个自定义的安装程序代替新硬件安装程序﹐为了提供这个功能﹐自定义的安装程序需要使用SETUPAPI.DLL提供的例程﹒这个库中的每个函数的形式是SetupDiXxx﹒DDK提供使用这个库的详细资料﹒
第二﹐驱动程序可以提供一个自定义的设置设备的向导页﹒在它的工作要完成之前﹐安装程序发送一个DIF_NEWDEVICEWIZARD_FINISHINSTALL请求来提供给驱动程序一个显示自定义页的机会﹒&控制驱动程序的加载顺序&有时﹐驱动程序的加载顺序是非常重要的﹒可能一个驱动程序依赖另一个驱动程序初始化完成﹒当有这样的依赖产生﹐服务控制管理器(the
Service Control Manager)可以取得系统注册表中条目LoadOrderGroup和Dependencies﹐这些值可以在INF文件中的[ServiceInstall]部分指定﹒ LoadOrderGroup是命名一个指定的驱动程序加载顺序组的一个号码﹐Dependencies指定在这个驱动程序加载成功之前必须加载的组﹒ 这样的相互依赖不是公共的﹐也不应该是公共的﹒在一个真正的以设备为中心的环境(支持即插即用)中﹐驱动程序应该使用尽量少的联系的顺序﹒另一方面﹐分层很多的驱动程序的执行需要这些规范是合理的﹒&驱动程序的数字签名&WIN2000的CD上附带有很多第三方的驱动程序﹒为了分享这些程序﹐需要几个条件﹒
加之﹐无论何时尝试在WIN2000上安装一个驱动程序﹐都会收到一个陈述设备驱动程序没有数字签名并且它的确实性没有被微软检验的警告信息﹒ 下面介绍微软的检验驱动程序的确实性的作用和驱动程序作者和硬件制造商的保证它们的软件包被包含在未来的WIN2000 CD上的负担﹒&微软检验驱动程序的原因&微软检验驱动程序有两个目标:
1.& 通过方便的设备驱动程序的发售提供或者促进WIN2000和更多的硬件设备的协同工作能力﹒ 2.& 确定设备驱动程序是稳定的和没有折中系统的完整性﹒ 因为设备驱动程序操作在内核模式﹐它们可以慢慢的或者很快的使系统崩溃﹒因为系统的不稳定性常常由内核自己引起﹒这样﹐微软为它的操作系统维持一个被鉴定的制造商和驱动程序的目的是明显的﹒
当然﹐WIN2000和大多数的硬件的协同工作能力是一个强有力的买点﹒因此﹐微软常常与硬件制造商一起来确保及时地发布兼容的驱动程序﹒ 为了完成这两个目标﹐微软有专门的提供硬件和驱动程序证明的团队﹐Windows硬件质量实验室(WHQL)﹒&数字签名&作为WHQL程序的一部分﹐一个被检验过的驱动程序获得一个允许在WIN2000中安装驱动程序并且不会产生警告的数字签名﹒&数字签名由几个部分组成:
1.& 一个被包含在分布式的驱动程序包的目录文件(.CAT)﹐它包含微软分配的数字签名﹒
2.& 一个在INF文件中[Versions]部分的涉及.CAT文件的条目﹒
3.& WIN2000的是或者否允许一个没有数字签名的驱动程序安装的策略﹒ 数字签名有更改检验﹐这样确保驱动程序被使用供货商提供的原始的代码安装﹒它使用密码技术来完成这个目标﹐这个数字签名没有更改驱动程序代码﹒&小结&Windows
2000和Windows 98的自动的设备驱动程序的, 安装对于用户来说是一个巨大的进步﹒然而这个步骤需要驱动程序的作者附加的工作﹐至少﹐必须提供一个INF文件﹒
INF文件中的内容会在注册表中有所体现
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/{设备管理器该设备属性的详细信息}
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{GUID}
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/{Driver名称}
3, 安装流程
注 * 从磁盘安装
在设备管理器中查看
4, 给出一个(包括INF文件,符号文件和源代码)
代码就是《驱动开发技术详解》光盘中第一章的代码。
可以使用WinDBG和VMWare进行简单的调试练习。
关于WinDBG的使用会在下一篇Blog中描述。
来自CSDN网站chenyujing1234博客
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:34445次
排名:千里之外
转载:45篇
(2)(10)(5)(14)(10)(4)}

我要回帖

更多关于 inf 驱动程序下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信