在以前的NDIS 5.1中,我们设法制作了一个安装了32或64位sys文件二进制文件的inf文件,具体取决于安装它的操作系统。
我们现在尝试使用NDIS 6 LWF INF文件,并且不知道我们如何复制[Install.Services]部分,因此操作系统将自动选择要拾取的二进制文件,32或者64位的。
这基本上将我们带到了以下INF文件部分:
[Install.Services]
; You may also want to add the SPSVCINST_STARTSERVICE flag, like this:
; AddService=NdisLwf,0x800,NdisLwf_Service_Inst ; SPSVCINST_STARTSERVICE
AddService=Daihinia,,Daihinia_Service_Inst
[Daihinia_Service_Inst]
DisplayName = %Daihinia_Desc%
ServiceType = 1 ;SERVICE_KERNEL_DRIVER
; Typically you will want your filter driver to start with SERVICE_SYSTEM_START.
; If it is an Optional filter, you may also use 3;SERVICE_DEMAND_START.
StartType = 1 ;SERVICE_SYSTEM_START
ErrorControl = 1 ;SERVICE_ERROR_NORMAL
ServiceBinary = %12%\daihinia6-32.sys
LoadOrderGroup = NDIS
Description = %Daihinia_Desc%
AddReg = Common.Params.reg, NdisImPlatformBindingOptions.reg
在[Daihinia_Service_Inst]中,我们在上面的例子中有32位二进制文件。
任何有关如何修改它们的见解,因为[Install.Services]部分没有明确地在INF中的任何地方引用,所以我们不能在那里做一个分叉?
答案 0 :(得分:1)
我们通常不鼓励驱动程序根据CPU架构使用不同的名称。所有内置驱动程序在x86,ia64,amd64,arm等上都具有相同的名称。因此,解决问题的一种简单方法是在所有平台上发布名为“daihinia.sys”的文件。
但是如果你真的想拥有不同的文件名,那么你有两个高级选项:
第一个选项的示例:
[Manufacturer]
%Msft%=MSFT,NTx86,NTamd64
[MSFT.NTx86]
%NdisLwf_Desc%=Install32, MS_NdisLwf
[MSFT.NTamd64]
%NdisLwf_Desc%=Install64, MS_NdisLwf
[Install32.Services]
AddService=MyService,,Service32
[Install64.Services]
AddService=MyService,,Service64
[Service32]
ServiceBinary=%12%\MyImage32.sys
. . . other options . . .
[Service64]
ServiceBinary=%12%\MyImage64.sys
. . . other options . . .