关于inf文件格式的几个疑问

qqwwing 2010-12-02 03:08:58
初学者,有几个简单的问题比较困惑。请各位大侠指点一二

1、要拷贝的源文件放在哪里?

比如inf文件相关section如下

[SourceDisksNames]
1 = "HelloWDM",Disk1,,

[SourceDisksFiles]
HelloWDM.sys = 1,MyDriver_Check,

这里的这个1代表什么,DDK的帮助里说1是diskid,标识了源文件所在的磁盘。可是如果有硬盘上有多个分区怎么办?是指第几个分区?如果是在光驱或者软驱上怎么办?

在SourceDisksFiles中指出的文件名为HelloWDM.sys,文件在磁盘"1”,子目录为MyDriver_Check。是指文件存在于这个盘的根目录下的MyDriver_Check子目录下吗?

2、写入注册表的内容是在inf文件中定义的吗,还是说安装的时候系统会自动向注册表中写入其它的内容?

比如inf文件相关section如下

[YouMark_DDI.NT]
CopyFiles=YouMark_Files_Driver
AddReg=YouMark_NT_AddReg

[YouMark_NT_AddReg]
HKLM, "System\CurrentControlSet\Services\HelloWDM\Parameters",\
"BreakOnEntry", 0x00010001, 0

从相关资料中可以看到WDM驱动程序安装时会将相关信息写入注册表的硬件子键(HKLM\SYSTEM\CurrentControlSet\Enum)、类子键(HKLM\SYSTEM\CurrentControlSet\Control\Class)和服务子键(HKLM\SYSTEM\CurrentControlSet\Service)。可是为什么在inf文件中只纪录的了服务键的部分内容,其它的信息是安装时系统自动写入的吗?

3、DDInstall.Service节是做什么用的?

比如相关的Section如下

[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

它是用来启动相关服务吗?我记得书上说NT形式的驱动是以服务的形式加载的,WDM驱动也是吗?
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
luawkk 2010-12-03
  • 打赏
  • 举报
回复
我最近也在研究 文件过滤驱动开发 一起加油

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧