我尝试安装的驱动程序是适用于 Windows 7x64 的 Kernel Mini-Filter 驱动程序。我正在测试安装程序的机器处于测试模式,并且驱动程序文件和 .cat 文件都使用我制作的证书进行了签名。我按照此处的说明进行操作,但仍然无法安装驱动程序。我确保添加DriverPackageType = FileSystemMinifilter
到[version]
.inf 文件的部分。
这是我的 WiX 安装程序 xml 的摘录:
<Directory Id="Driver" Name="Driver">
<Component Id="MY-DRIVER-NAME" Guid="MY-GUID">
<File
Id="DRIVER_FILE1_SYS"
Name="DriverFile1.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE2_SYS"
Name="DriverFile2.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE3_SYS"
Name="DriverFile3.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE4_SYS"
Name="DriverFile4.sys"
DiskId="1"
Source="path_to_sys_file"
Vital="yes"
System="yes"
ReadOnly="yes"
KeyPath="yes"/>
<File
Id="DRIVER_FILE_INF"
Name="DriverFile.inf"
DiskId="1"
Source="path_to_inf_file"
Vital="yes"
System="yes"
ReadOnly="yes"/>
<File
Id="DRIVER_FILE_CAT"
Name="DriverFile.cat"
DiskId="1"
Source="path_to_cat_file"
Vital="yes"
System="yes"
ReadOnly="yes"/>
<difx:Driver Legacy="yes"/>
</Component><!--LEGDriver-->
“Id”、“Name”和“Source”路径已更改(我实际上并没有使用上面显示的值,这只是一个示例)。我构建安装程序没有问题。当我运行它时,msiexec /i MyMsi.msi /l*v install.log
我看到了错误DIFXAPP: ERROR: Could not get services associated with driver package
然后它尝试撤消更改并遇到更多错误:
ERROR: Unable to revert to a previous driver store for service ''.
ERROR: Unable to open service '' to delete it because of error 0x7B
使用以下命令安装 .inf 文件没有问题:
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 path-to-inf\infname.inf
它还通过“右键单击安装”成功安装。
将上面的“RUNDLL32.EXE”命令作为自定义操作 ExeCommand 添加到我的 WiX 安装程序而不是使用 DifxApp 在手动安装计算机上的 .msi 文件时有效,但是,当通过 GPO 从 Active Directory 服务器(每计算机 GPO ),安装未完成。(除 INF 安装外的所有内容都已完成)。