驱动开发——安装
来源:互联网 发布:世界征服者mac 编辑:程序博客网 时间:2024/06/05 17:59
作为一个完整的例子,你开发出来驱动还必须要能安装。所以下面我讲一下安装。
如果前面的编译过程没有错误的话,现在我们应该已经得到了一个HelloWDM.sys文件,假设它是放在D:/HelloWDM/objfre/i386中。
安装WDM驱动程序可以用两种方法,一种是利用注册表,还有一种是利用INF文件。我们一般是采用INF文件(这是微软推荐的)。INF文件可以在 WINNT/INF 目录中找到很多。为了顺利安装,我在这里先给出 HelloWDM 所需要的 HelloWDM.INF 文件:
;--------- Version Section ---------------------------------------------------
[Version]
Signature="$CHICAGO$"
Provider=LC_Device
DriverVer=8/21/2002,3.0.0.3
; If device fits one of the standard classes, use the name and GUID here,
; otherwise create your own device class and GUID as this example shows.
Class=Unknown
ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b}
;--------- SourceDiskNames and SourceDiskFiles Section -----------------------
; These sections identify source disks and files for installation. They are
; shown here as an example, but commented out.
[SourceDisksNames]
1 = "HelloWDM",Disk1,,
[SourceDisksFiles]
HelloWDM.sys = 1,objfre/i386,
;--------- ClassInstall/ClassInstall32 Section -------------------------------
; Not necessary if using a standard class
; 9X Style
[ClassInstall]
Addreg=Class_AddReg
; NT Style
[ClassInstall32]
Addreg=Class_AddReg
[Class_AddReg]
HKR,,,,%DeviceClassName%
HKR,,Icon,,"-5"
;--------- DestinationDirs Section -------------------------------------------
[DestinationDirs]
YouMark_Files_Driver = 10,System32/Drivers
;--------- Manufacturer and Models Sections ----------------------------------
[Manufacturer]
%MfgName%=Mfg0
[Mfg0]
; PCI hardware Ids use the form
; PCI/VEN_aaaa&DEV_bbbb&SUBSYS_cccccccc&REV_dd
;改成你自己的ID
%DeviceDesc%=YouMark_DDI, PCI/VEN_9999&DEV_9999
;---------- DDInstall Sections -----------------------------------------------
; --------- Windows 9X -----------------
; Experimentation has shown that DDInstall root names greater than 19 characters
; cause problems in Windows 98
[YouMark_DDI]
CopyFiles=YouMark_Files_Driver
AddReg=YouMark_9X_AddReg
[YouMark_9X_AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,HelloWDM.sys
HKR, "Parameters", "BreakOnEntry", 0x00010001, 0
; --------- Windows NT -----------------
[YouMark_DDI.NT]
CopyFiles=YouMark_Files_Driver
AddReg=YouMark_NT_AddReg
[YouMark_DDI.NT.Services]
Addservice = HelloWDM, 0x00000002, YouMark_AddService
[YouMark_AddService]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%/System32/Drivers/HelloWDM.sys
[YouMark_NT_AddReg]
HKLM, "System/CurrentControlSet/Services/HelloWDM/Parameters",/
"BreakOnEntry", 0x00010001, 0
; --------- Files (common) -------------
[YouMark_Files_Driver]
HelloWDM.sys
;--------- Strings Section ---------------------------------------------------
[Strings]
ProviderName="Flying L Co.,Ltd."
MfgName="LC Soft"
DeviceDesc="Hello World WDM!"
DeviceClassName="LC_Device"
SvcDesc="???"
注意它可以同时在Win98或者Win2000中使用(系统会通过这个INF文件里面的字段名称,自动选择适合当前系统的安装方法的)。关于INF文件的各个字段含义现在我也不知道,所以也没有办法说清楚,如果谁看到这篇文章,而又知道的话,不妨为我一份。
准备好这个 HelloWDM.INF 文件后,让我们打开控制面板,双击“添加/删除硬件”,选择“添加/排除设备故障”->“添加新设备”->“否,我想从列表选择硬件”->“其它设备”->“从磁盘安装”,选择 HelloWDM.INF 所在的路径,然后安装。
当安装完成后,系统就会添加上你写好的驱动程序了。(可以在“设备管理器”中查看到)。然后重启电脑,这个驱动程序就投入使用啦。
关于安装,我也只知道这么多,到底安装驱动程序时,操作系统都作了些什么,我也不是很清楚,等我弄明白了我再贴上。
2005年9月25日 16:52
# 回复: 驱动开发——安装 2005-11-11 11:29 cacal
怎么用程序实现自动安装?
# 回复: 驱动开发——安装 2005-11-11 11:37 cacal
Windows有一套专门的Setup API就是用来制作这样的程序的。这些函数都是以Setup开头,在Win2000的DDK和最新的MSDN Library包括详细的介绍,但是Win98 DDK和VC6的MSDN Library没有介绍。这些函数调用你制作的.inf文件并进行安装。
这个是问专家给的答案...
生成的不是.sys文件吗,.inf文件是怎么出来的呢?
# 回复: 驱动开发——安装 2005-11-11 11:29 cacal
怎么用程序实现自动安装?
# 回复: 驱动开发——安装 2005-11-11 11:37 cacal
Windows有一套专门的Setup API就是用来制作这样的程序的。这些函数都是以Setup开头,在Win2000的DDK和最新的MSDN Library包括详细的介绍,但是Win98 DDK和VC6的MSDN Library没有介绍。这些函数调用你制作的.inf文件并进行安装。
这个是问专家给的答案...
生成的不是.sys文件吗,.inf文件是怎么出来的呢?
# 回复: 驱动开发——安装 2005-11-11 11:29 cacal
怎么用程序实现自动安装?
# 回复: 驱动开发——安装 2005-11-11 11:37 cacal
Windows有一套专门的Setup API就是用来制作这样的程序的。这些函数都是以Setup开头,在Win2000的DDK和最新的MSDN Library包括详细的介绍,但是Win98 DDK和VC6的MSDN Library没有介绍。这些函数调用你制作的.inf文件并进行安装。
这个是问专家给的答案...
生成的不是.sys文件吗,.inf文件是怎么出来的呢?
# 回复: 驱动开发——安装 2005-11-11 11:29 cacal
怎么用程序实现自动安装?
# 回复: 驱动开发——安装 2005-11-11 11:37 cacal
Windows有一套专门的Setup API就是用来制作这样的程序的。这些函数都是以Setup开头,在Win2000的DDK和最新的MSDN Library包括详细的介绍,但是Win98 DDK和VC6的MSDN Library没有介绍。这些函数调用你制作的.inf文件并进行安装。
这个是问专家给的答案...
- 驱动开发——安装
- 驱动开发——安装 转
- 服务器开发—数据库Mongodb及C++驱动安装
- Windows驱动开发——WDM驱动
- Windows驱动开发——WDM驱动
- Linux驱动开发(一)——驱动开发基础
- VXWORKS——驱动开发
- linux驱动开发—beep
- arduino开发板安装驱动
- 手机RF开发——驱动开发
- 《micro2440开发》第五章:micro2440 JLINK配置——Jlink驱动/工具及ADS安装
- Linux 设备驱动开发 —— 基于自己的设备驱动开发环境设计驱动(一)
- Linux驱动开发———混杂设备驱动模型
- Linux驱动开发———平台总线设备驱动
- Linux驱动开发———总线设备驱动模型
- 基于Windriver的驱动开发日志——驱动基础
- 基于Windriver的驱动开发——驱动基础
- [Windows驱动开发](三)基础知识——驱动例程
- NT DDK的安装以及设备驱动程序的编译
- 幸せになりたい
- 驱动开发——编译正传
- Visual Studio构造WDM设备驱动程序(上)
- Visual Studio构造WDM设备驱动程序(下)
- 驱动开发——安装
- GBK编码
- 编译第一个WDM程序,菜鸟不可耻
- 求救
- 每个人都要有静心的时候
- 驱动开发起步
- 解析INF文件
- 在VC中利用Makefile工程编译DDK驱动
- java正则表达式入门文档
评论
生成的不是.sys文件吗,.inf文件是怎么出来的呢?