保持system32 \ drivers目录以外的Windows驱动程序sys文件是合法的吗? 看起来,如果驱动程序是通过CreateService以“手动”方式configuration的,并且驱动程序的驱动程序的绝对path是可能的。 但是,当使用INF文件安装驱动程序使用InstallHinfSection和驱动程序的位置是system32 \ drivers以外的驱动程序InstallHinfSection将失败,并出现错误
! dvi:驱动程序path不在系统根目录下!!! inf:{安装Inf部分[DefaultInstall.NT.Services] exit(0xe0000217)} !!! inf:错误0xe0000217:此INF中的服务安装部分无效。 inf:{ServiceBinary =%1 \ MyDriverdrv.sys时,安装Inf节[DefaultInstall.NT]}; 当前目录和ServiceBinary =%12%\ MyDriverdrv.sys成功; SYSTEM32 \ DRIVERS
INf文件:
; ; INF file to install MyDriver registry filter driver ; [Version] signature = "$Windows NT$" Provider = %MyDriverInc% CatalogFile = ; Distribution Media information ; [SourceDisksNames] 1 = %MyDriverdrv.MediaDesc% [SourceDisksFiles] MyDriverdrv.sys = 1 [DestinationDirs] DefaultDestDir = 12 MyDriver.DriverFiles = 12 [DefaultInstall.NT] CopyFiles = MyDriver.DriverFiles [DefaultUninstall.NT] DelFiles = MyDriver.DriverFiles [MyDriver.DriverFiles] MyDriverdrv.sys [DefaultInstall.NT.Services] AddService = %ServiceName%, , MyDriverdrv_Service_Inst [DefaultUninstall.NT.Services] AddService = %ServiceName%, 0x200 [MyDriverdrv_Service_Inst] DisplayName = %MyDriverdrv.SvcDesc% ServiceType = 1; SERVICE_KERNEL_DRIVER StartType = 3; SERVICE_DEMAND_START ErrorControl = 1; SERVICE_ERROR_NORMAL ServiceBinary = %1%\MyDriverdrv.sys [Strings] MyDriverInc = "MyDriver, Inc" ServiceName = "MyDriverdrv" MyDriverdrv.SvcDesc = "MyDriver Trace Kernel Mode Driver" MyDriverdrv.MediaDesc = "MyDriver Trace Kernel Mode Driver"
因为INF文件是现在安装驱动程序的官方方式,所以我没有看到在本地保留驱动程序文件的方法。
谢谢!