阅读:1529回复:8
用INF文件安装驱动程序,但驱动程序却没有被拷备到正确的文件夹中?
在WIN2K下,用geninf.exe生成的INF文件安装驱动程序,但驱动程序在安装过程中却没有被自动拷备到正确的文件夹中(winnt\\system32\\drivers),是什么原因?
谢谢! [编辑 - 10/2/03 by chudd] |
|
沙发#
发布于:2003-10-03 09:35
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-10-03 23:38
; driv.inf
; ; Installation file (.inf) for the driv device. ; ; (c) Copyright 2003 abcd ; [Version] Signature=\"$Windows NT$\" Provider=%L.d% ClassGUID={4d36e967-e325-11ce-bfc1-08002be10318} Class=DiskDrive CatalogFile=driv.cat DriverVer=10/02/2003 [DestinationDirs] DefaultDestDir = 12 ; ; Driver information ; [Manufacturer] %L.d% = L.d.Mfg [L.d.Mfg] %L.d.DeviceDesc0% = driv, PCI\\VEN_1234&DEV_2345&SUBSYS_34564567 ; ; General installation section ; [driv] ; ; File sections ; ; ; Service Installation ; [driv.Services] AddService = driv, 0x00000002 , driv_Service_Inst, driv_EventLog_Inst [driv_Service_Inst] ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 0 ; SERVICE_ERROR_IGNORE LoadOrderGroup = Pointer Port ServiceBinary = %12%\\driv.sys [driv_EventLog_Inst] AddReg = driv_EventLog_AddReg [driv_EventLog_AddReg] HKR,,EventMessageFile,0x00020000,\"%SystemRoot%\\System32\\IoLogMsg.dll;%SystemRoot%\\System32\\drivers\\driv.sys\" HKR,,TypesSupported,0x00010001,7 ; ; Source file information ; [SourceDisksNames.x86] 1 = %DiskId1%,,,\"\" [SourceDisksFiles] ; Files for disk abcd Installation Disk #1 (DiskDrive) Driv.sys = 1,, [Strings] ; ; Non-Localizable Strings ; REG_SZ = 0x00000000 REG_MULTI_SZ = 0x00010000 REG_EXPAND_SZ = 0x00020000 REG_BINARY = 0x00000001 REG_DWORD = 0x00010001 SERVICEROOT = \"System\\CurrentControlSet\\Services\" ; ; Localizable Strings ; L.d.DeviceDesc0 = \"driv\" DiskId1 = \"abcd Installation Disk #1 (DiskDrive)\" L.d = \"abcd\" |
|
地板#
发布于:2003-10-04 18:04
没有CopyFile
|
|
地下室#
发布于:2003-10-04 21:24
1。这个INF文件是geninf.exe生成的,不知如何让它自动生成copyfile呀?
2。我如果将SYS手动拷备到DRIVERS文件夹中可以吗? 3。我用WINOBJ在DRIVERR中看到了自己设备的名称,是否表明设备已成功添加了? 谢谢! [编辑 - 10/4/03 by chudd] |
|
论坛版主
![]() |
5楼#
发布于:2003-10-10 15:17
[DestinationDirs] DrvTest_Files_Driver = 10,System32\\Drivers [DrvTest_DDI.NT] CopyFiles=DrvTest_Files_Driver AddReg=DrvTest_NT_AddReg [DrvTest_DDI.NT.Services] Addservice = DrvTest, 0x00000002, DrvTest_AddService [DrvTest_AddService] DisplayName = %SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\DrvTest.sys [DrvTest_Files_Driver] DrvTest.sys 刚才那几条用于把文件弄到指定的目录注意[DrvTest_Files_Driver]前面的引用和最后的定义。文件是你自己的要考的文件,这里只是示例。 我先说你的第三个问题你的文件没在system32\\driver下,应该不会有你创建的设备,因为你的代码没执行,那么,如果你的硬件设备是bios自检出来的,win找得到,有可能创建一个东西,这点我不能肯定,你自己试验试验 第二个问题,如果你的inf其它无误,可以手动拷.sys过去,没问题,不过你需要确定.inf是否真的把注册表填好了,否则执行可能有问题。 第一个问题geninf没用过,不能回答,你有什么经验给大家谈谈三:) |
|
6楼#
发布于:2003-10-10 16:37
谢谢!
我是个初学者,还想问一下: 自己写一段驱动,用这个INF文件安装时,需要选择了设备(如:other--端口设备),它就把这个设备当作了端口设备,并给它一个COM3的名子;但用别的INF安装时不需要选择设备,它自动会有个名子,不知这个是INF的那个项设置的? |
|
论坛版主
![]() |
7楼#
发布于:2003-10-13 20:11
这个东西我也有点儿麻杂,你需要自己实验一下:)
对于你添加的驱动的类,可以自己定义一个CLASS NAME: [Class_AddReg] HKR,,,,%DeviceClassName% HKR,,Icon,,\"-5\" ICON是你用的图标,系统默认的,你可以选,那个CLASSNAME选系统预定义的系统就会把你的驱动归为它的默认类,自己定义可以用WIN下面的一个生成器生成一个GUID,名字我忘了反正是生成一个可用的GUID,然后如下定义 Class=FantasyRoomClass ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b} 上面是我用的 |
|
论坛版主
![]() |
8楼#
发布于:2003-10-13 22:40
不好意思,刚才弄东西才发现那个生成GUID的工具叫GUIDGEN.EXE,是SDK的BIN下面的一个应用:)对不起各位
|
|