NDIS开发[网络驱动开发] NDIS开发(3)

来源:互联网 发布:室内吸顶天线连接网络 编辑:程序博客网 时间:2024/05/09 05:46

转自:http://wuli5164233.blog.163.com/blog/static/460195442009125682094/

NDIS开发[网络驱动开发] NDIS开发(3)  

2009-02-25 18:08:20|  分类:VPN编程 |字号 订阅

接  NDIS开发[网络驱动开发] NDIS开发(2)

值名 值 描述   
ParamDesc String 说明在高级属性页中显示的参数名   
Type int,long,word,dword,
edit,或enum 说明参数类型int,long,word说明是数字参数。edit,enum说明是文本参数。   
Default


 默认值 为参数说明默认值。对数字参数,默认值必须是数值(int,long,word或dword)。对文本参数,默认值必须是字符串。必选参数必须设默认值,可选参数不应设默认值。   
optional
 0或1 0说明参数是必需的。1说明参数是可选的。在高级属性页中用户可以将可选参数设置为Not Present。但对于必需参数,用户必须说明一个值或使用默认值。   
Min 数字值 说明数字参数的最小值   
Max 数字值 说明数字参数的最大值   
Step 数字值 说明数字参数有效值之间的步长。以最小值为起点。 
enum参数的值域由如下形式的子键说明:
Ndi\params\SubkeyName\enum
每个枚举值都必须提供这个键。每个enum子键说明一个数字值(从0开始)和对该值的描述。
下面是add-registry-section的例子,用来增加名为TransType的配置参数。
[al.params.reg]
HKR,Ndi\params\TransType,ParamDesc,0,"TranseiverType"
HKR,Ndi\params\TransType,Type,0,"enum"
HKR,Ndi\params\TransType,Default,0,"0"
HKR,Ndi\params\TransType,optional,0,"0"
HKR,Ndi\params\TransType\enum,"0",0"Auto-Connector"
HKR,Ndi\params\TransType\enum,"1",0,"Thick Net(AUI/DIX)"
HKR,Ndi\params\TransType\enum,"2",0,"Thin Net(BNC/COAX)"
HKR,Ndi\params\TransType\enum,"3",0,"Twisted-Pair(TPE)"
1.2.7.12为网络适配器说明定制属性页
如果高级属性页没有为Net组件(适配器)提供合适的配置选择,可以生成一个或多个定制属性页,如下所示:
1.生成Microsoft Win32属性页。参见Platform SDK
2.生成属性页扩展DLL,该DLL提供AddPropSheetPageProc和ExtensionPropSheetPageProc回调函数。参见Platform SDK。
3.用add-registry-section将EnumPropPages32键加入到适配器的实例键中。EnumPropPages32键有两个REG_SZ值:输出AddPropSheetPageProc函数的DLL名字和ExtensionPropSheetPageProc函数的名字。下面是一个add-registry-section例子,用来增加EnumPropPages32键:
HKR,EnumPropPages32,0,"DLL name,ExtensionPropSheetPageProc function name"
4.在适配器的INF文件中,包括一个CopyFiles节,将属性页扩展DLL复制到Windows/systems32目录下。关于Copyfile节的详情,参见《Plug and Play,Power Management,and Setup Design Guide》,以及《Windows  2000 Driver Development Reference》的卷1的INF文档。
5.在适配器的DDInstall节中,将NCF_HAS_UI说明为一个Characteristics值(参见1.2.4节),用以指明适配器支持的一个用户接口。
6.当用户确认属性页中所作的改动后,属性页扩展DLL必须调用SetupDiGetDeviceInstallParams,并在在参数SP_DEVINSTALL_PARAMS结构中设置DI_FLAGEX_PRORCHANGE_PENDING标志,然后用该结构调用SetupDiSetDeviceInstallParams,重装驱动程序,从而读入改变后的参数值。
1.2.7.13说明过滤器服务值
安装网络过滤器组件的INF文件必须说明过滤器服务值。本节将描述怎样定义一个过滤器服务。网络过滤器组件包括以下两个部分:
·过滤器服务
·过滤器设备
一个网络过滤器的服务和设备属于同一过滤器驱动程序。安装网络过滤器既需要过滤器服务的INF文件也需要过滤器设备的INF文件。过滤器服务INF文件必须说明Ndi键下的过滤器组件的Service值。过滤器设备INF文件,包含了AddService指令,该指令引用了Service-install节,在该节中说明了过滤器服务在何时、怎样被装载。AddService指令的ServiceName值必须和过滤器组件的服务(Service)名相匹配。过滤器设备INF文件中的Service-install节的ServiceBinary项说明了过滤器驱动程序的二进制路径。在过滤器安装过程中,用过滤器服务INF文件的CopyFiles指令,将过滤器驱动程序传输到目标计算机中。参见1.2.7.9节和1.2.8节。
下面是过滤器服务INF文件说明过滤器组件服务名字的一个例子:
HKR,Ndi,service,,sfilter
这个过滤器组件服务名字也就是要提交给NDIS的名字。过滤器组件服务名字不需要和过滤器驱动程序的二进制名字相同,但在通常情况下它们是相同的。
当INF文件增加过滤器组件服务时,过滤器设备INF文件是怎样引用过滤器组件服务名的呢?
示例如下:
[SFilterMP.ndi.Services]
AddService=Sfilter,2,SfilterMP.AddService
[SFilterMP.AddService]
DisplayName=%SFilter_Desc%;"Sample Filter Miniport"
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=3;SERVICE_DEMAND_START
ErrorControl=1;SERVICE_ERROR_NORMAL
SericeBinary=%12%\passthru.sys;filterdriver
LoadOrderGroup=PNP_TDI
过滤器服务INF文件的Ndi键必须支持如下注册表项,用以定义过滤器服务:
FilterClass
FilterClass说明了过滤器服务类。过滤器类可以是下表值中的一个:
值                            含义

scheduler             包调度过滤服务。这个过滤器类在链中是最高的。包调度程序检测
                      802.1p优先权,这优先权是由QoSsignaling组件赋给包的。
                      包调度程序根据优先级将这些包发送给低层的驱动程序。
loadbalance           负载平衡过滤服务。这个过滤器类在包调度和失败结束过滤器之
                      间。负载平衡过滤器通过将工作负载分配给微端口实例束,平衡
                      包传输的工作负载。
failover              失败结束过滤器。这个过滤器类是链中最低的。那就是说没有其他
                      过滤器可以处于这个过滤器设备和适配器之间。
                

FilterClass值确定过滤器在过滤器栈中的位置。
注意:每个过滤器服务类只有一个过滤器存在于过滤器分层栈中。例如,两个调度过滤器不能同时在栈中出现。
FilterDeviceInfFile
FilterDeviceInfFile为过滤器设备说明INF文件的名字。过滤器设备INF文件定义了过滤器设备,过滤器服务用它为某个网络适配器过滤信息。过滤器设备是一个虚拟NIC。
FilterDeviceInfId
FilterDeviceInfId说明了过滤器设备的标识符。标识符在过滤器设备的INF文件的Models节中列出。过滤器设备是由过滤器驱动程序为每个物理适配器初始化的微端口实例。
FilterMediaTypes
FilterMediaTypes说明了过滤器服务过滤的介质类型。介质类型列表,参见1.2.7.10节中的微软支持的LowerRange值列表。过滤器服务INF在Ndi键下Interfaces键中说明了这些介质类型。
注意:为FilterMediaTypes说明合适的介质类型是很关键的。过滤器设备只能安装在这种物理适配器上,即该适配器所连的网络介质至少要和过滤器介质类型中的一个相匹配。物理适配器的LowerRonge项说明了网络介质,如以太网或信令网。
下面是过滤器服务INF文件定义过滤器服务的值的一个例子:
HKR,Ndi,FilterClass,failover
HKR,Ndi,FilterDeviceInfFile,netsf_m.inf
HKR,Ndi,FilterDevviceInfId,ms_sfiltermp
HKR,Ndi,\Interfaces,FilterMediaTypes,"ethernet,tokenring,fddi"
虽然其他网络INF文件可能为安装的组件说明向上和向下绑定接口,但是过滤器服务INF文件必须说明,它不是出于绑定目的而暴露上、下边界。过滤器服务INF文件在Interface键中说明这个特性。下面是说明这个特性的例子:
HKR,Ndi\Interfaces,UpperRange,,noupper
HKR,Ndi\Interfaces,LowerRange,,noloner
1.2.7.14说明束成员关系
安装Net组件(物理或虚拟适配器)的INF文件可说明这些适配器属于同一个适配器束。NDIS中间层驱动程序和过滤器驱动程序(输出虚拟网络适配器)包括在Net类中。NDIS驱动程序通过在适配器束上分配工作负载,来平衡负载。
关于负载平衡的更多信息,参见《Miniport NIC Driver》的第2部分第10章。
为了说明适配器属于某个适配器束,安装适配器的驱动程序INF文件必须包含BundleId键和一个大小写敏感的字符串值(REG_SZ)。这个字符串值说明了适配器的驱动程序束。这个注册值用束标志符信息来配置。
下面是一个驱动程序INF文件的add-registry-section例子,用来将BundleId子键加入到Ndi\params键中,并赋给BundleId的ParamDesc(参数描述)一个字符串值“Bundle1”。
[al.params.reg]
HKR,Ndi\Params\BundeId,ParamDesc,0,"Bundle1"
1.2.7.15 Window 2000中不用的 Window 95/98 Ndi值和键
下面列出的Ndi注册键和值在Windows 95/98中使用,但在Windows 2000中不再使用。这些信息帮助开发者把驱动程序从95/98上移植到Windows 2000上。
·DevLoader
·DeviceVxD
·DriverDesc
·Ndi\DeviceID
·Ndi\NdiInstaller
·InfFile
·InfSelection
·Ndi\InstallInf
·Ndi\CardType
·StaticVxD
·Ndi\Interfaces\DefUpper
·Ndi\Interfaces\DefLower
·Ndi\Interfaces\RequireAny
·Ndi\Compability
·Ndi\Install
·Ndi\Remove
·Ndi\Params\Param_key_name\flag
·Ndi\Params\Param_key_name\location
·Ndi\param_key_name\resc
·Ndi\filename\...
·NDIS\...
Windows 2000不支持Ndi\param_key_name\resc和Ndi\Params\param_key_name\flag值。这意味着用户不能通过高级页配置适配器资源。
1.2.8 DDInstall.Service节
DDInstall.Services节包括一个或多个AddService指令,每个指令引用了INF作者定义的Service-install-section,它说明了组件的驱动程序何时以及如何加载。
在安装Net组件(适配器)的INF文件中必需一个DDInstall.Services节。即在安装NetTrans,NetClient或NetService组件的INF文件中该节是可选的。
DDInstallService节中的AddService指令也能引用为组件安装错误日志的error-log-install-section。错误日志对所有网络组件是可选的。DDInstall.Services节和AddService指令的细节化描述参见《Plug and Play,Power Management,and Setup Design Guide》以及《Windows 2000 Driver Development Reference》。第1卷的INF文件格式描述,。
下面是DDInstall.Services节,service-install-section,error-log-install-section和add-registry-section(被error-log-install-section中的AddReg指令引用)的例子:
[al.ndi.NT.Services]
AddService=a1,2,al.AddService,al.AddEventLog
[a1.AddService]
DisplayName=%Adapter1.DispName%
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=2;SERVICE_AUTO_START
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\al.sys
LoadOrderGroup=NDIS
[a1.AddEventlog]
AddReg=al.AddEventLog.reg
[a1.AddEventlog.reg]
HKR,,EventMessageFile,Ox00020000,"%%SystemRoot%%\system32\netevent.dll"
HKR,TypeSupported,Ox00010001,7
AddService指令的ServiceName参数(上例中的a1),必须和组件的Ndi\Service值相匹配。参见1.2.7.9节。
1.2.9 NetworkProrider和PrintProvider节
由于NetClient组件向用户提供网络服务,它们被认为是网络提供者。NetClient组件如Microsoft Client for Networks和NetWare Client。
除了作为网络提供者外,NetClient组件还可以是一个打印提供者。打印提供者向网络中的用户应用程序提供打印服务。
NetClient组件总是作为网络提供者来安装。安装NetClient组件的INF文件不需要NetworkProvider节,除非下述条件之一成立:
·说明了这个组件的替代设备名字。
·为使用net view命令,为组件指定短名(参见1.2.9.1节)。
安装作为打印提供者的NetClient组件的INF文件,必须为该组件包含一个PrinterProvider节(参见1.2.9.2节) 。安装NetClient组件的INF文件也必须包含一个add-registrg-section(通过service-install-section中的AddReg指令引用),用来向组件service键中增加一个NetworkProvider键(参见1.2.7.6节)。
1.2.9.1包含一个NetworkProvider节
NetworkProvider节说明了1个或两个如下信息:
NetClient组件的替代设备名和用于net view命令的短名。为了创建一个NetworkProrider节,将.NetworkProvider扩展名加入到DDInstall节中,示例如下:
[DDInstall]                             ;InstallSection
[DDInstall.NetworkProvider]             ;NetworkProvidersection
说明一个设备名
正常情况下,网络类安装器通过将组件的Ndi\Service值(参见1.2.7.9节)复制到组件service键下的NetworkProvider键中,来创建网络提供者的设备名。为了给组件说明不同的设备名,在NetworkProvider节中包含DeviceName项,如下例所示:
[DDInstall-section.NetworkProvider]
DeviceName="nwrdr"
DeviceName是可选的,仅在Ndi\Service值作为网络提供者的设备名不够用时,才会说明。
说明一个短名
为使用NetWare的net view命令而为网络提供者说明一个短名,将在NetworkProvider节中包含一个ShortName项,如下例所示:
[DDInstall-section.NetworkProvider]
ShortName=”nw”
下面是net view命令所用短名的例子:
net view /n:nw
ShortName比网络提供者的全名容易记,也容易打印。
ShortName是可选的,仅在需要的时候说明。
1.2.9.2 包括一个PrintProvider节
安装NetClient组件(这里是一个打印提供者)的INF文件必须包括PrintProvider节。为了生成一个PrintProvider节,在DDInstall节中加入.PrintProvider扩展名,如下例所示:
[DDInstall-section];InstallSection
[DDInstall-section.printProvider];PrintProvidersection
PrintProvider节必须包括如下项:
·PrintProviderName
一个说明打印提供者的非本地字符串
·PrintProviderDll
打印提供者DLL的文件名
·DisplayName
说明打印提供者名字的本地字符串。DisplayName可以不同于PrintProviderName。
PrintProviderName和PrintProviderDll项提供一些信息,这些信息被用作AddPrintProvider函数的输入值(PROVIDER_INFO_1结构)。AddPrintProvider函数将打印提供者组件作为打印提供者加入。关于AddPrintProvider函数的更多信息,参见Platform SDK。
下面是PrintProvider节的一个例子:
[DDInstall-section.PrintProvider]
PrintProviderName="NetWare or Compatible Network"
PrintProviderDll="nwprovau.dll"
DisplayName="%NWC_Network_Display_Name%"
1.2.10 Winsock节
提供Winsock接口的NetTrans组件的INF文件必须说明Winsock的依赖性。这个INF文件必须包含一个Winsockinstall节。为创建一个Winsockinstall节,将.Winsock扩展名增加到该协议的DDInstall节名中。例如,如果DDInstall节命名为Ipx,该协议的Winsockinstall节必须命名为Ipx.Winsock。
Winsock安装节必须包含AddSock指令。AddSock指令说明供应商命名的节,该节中包括了增加到组件的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\Services\TransportDriver-
Name\Params\Winsock键中的值。
由AddSock指令引用的供应商命名的节必须包含如下值:
值名                                        描述

TransportService                   说明协议服务名的REG_SZ值。这必须和该协议
                                   Ndi\Servce值相同。(参见1.2.7.9节)
HelperDllName                      一个REG_EXPAND_SZ值,说明该协议的                     
                                   WindowsSocketsHelper(WSH)DLL。参见第3部分。
MaxSockAddLength                   一个REG_DWORD值,说明了最大有效SOCKADDR的
                                   尺寸,以字节为单位。
MinSockAddLength                    一个REG_DWORD值,说明了最小有效SOCKADDR
                                    的尺寸,以字节为单位

如果说明了名字空间提供的可选ProviderId,下面的值也必须说明:
值名                             描述

ProviderId                  说明GUID的REG_SZ值,用来签别名字空间提供者。GUID
                            作为所有名字空间提供者的键。通过运行
                            uuidgen.exe得到GUID。详情参参见platform SDK。
LibraryPath                 一个REG_EXPAND_SX值,说明名字空间提供者DLL的完全路
                            径。
DisplayString               一个本地化的字符串,说明名字空间提供者在用户接口中的
                            显示名。
SupportedSpace              一个REG-DWORD值,说明一个由名字空间提供者支持的名字
                            空间。下面是在Winsock2.h中定义的名字空间值:
                            名字空间                            值
                            NS_ALL                              0
                            NS_SAP                              1
                            NS_NDS                              2
                            NS_PEER_BROWSE                      3
                            NS_TCPIP_LOCAL                      10
                            NS_TCPIP_HOSTS                      11
                            NS_DNS                              12
                            NS_NETBT                            13
                            NS_WINS                             14
                            NS_NBP                              20
                            NS_MS                               30
                            NS_STDA                             31
                            NS_CAIRO                            32
                            NS_X500                             40
                            NS_NIS                              41
                            NS_WRQ                              50

Version                    一个可选的REG_DWORD值,说明了名字空间提供者的版本号。
                           如果此值没有说明,则用缺省值(1)。名字空间
                           提供者的详情参见Platform SDK。

下例显示了IPX协议的Winsock节:
[Ipx.Winsock]
AddSock=Install.IpxWinsock
[Install.IpxWinsock]
TransportService=nwlinkpipx
HelperDllName="%%SystemRoot%%\System32\wshisn.dll"
MaxSockAddrLength=Ox10
MinSockAddrLength=Oxe
ProviderId="GUID"
LibraryPath="%SystemRoot%\\System32\\nwprovaa.dll"
DisplayString=%NwlnkIpx_Desc%
SupportedNameSpace=1
Version=2

通过包括一个Winsockremove节,INF文件为一个协议删除Winsock依赖性。为创建一个Winsock-remove节,将.Winsock扩展名加入到协议的Remove节名中。例如,协议的Remove节名是Ipx.Remove,那么该Winsock-remove节名必须为Ipx.Remove.Winsock。
Winsock-remove节包含一个DelSock指令,该指令说明了一个INF-writer-named节。INF-Writer-named节必须说明需删除的传输服务。如果ProviderId已经注册,vendor-named节也必须说明要删除的ProviderId.下例显示了删除Ipx协议Winsock依赖性的两个节:
[Ipx.Remove.Winsock]
DelSock=Remove.IpxWinsock
TransportService=nwlinkipx
ProviderId="GUID"
1.2.11网络组件安装需求总结
本节总结如下类型的网络组件安装需求:
·网络适配器
·网络协议驱动程序
·中间层网络驱动程序
·网络过滤器驱动程序
·网络客户
·网络服务
1.2.11.1网络适配器的安装需求
本节总结了网络适配器的安装需求。
一般需求
 
INF文件节 状态 注释   
Version 需要 Class=Net
ClassGUID={4D36E972-E325-11CE-08002BE10318}   
SourceDisksNames

SourceDiskFiles 如果..,
则需要 如果INF文件没有随Windows 2000发布时需要。如果INF文件随Windows 2000发布,在version节中必须说明一个LayoutFile项,并且不用SourceDiskNames和SourceDiskFiles节。   
DestinationDirs 需要 没有特殊网络需求。   
ControlFlags 需要 在安装即插即用(PnP)适配器的INF文件中必须包含ExcludeFromSelect项。对非PnP适配器,无需列出。   
Manufacturer 需要 无特殊网络需求   
Models 需要 hw-id必须和PnP管理器的适配器提供的硬件ID相匹配。   
DDInstall 需要 Characteristics项可用的值:
NCF_VIRTUAL,NCF_SOFTWARE_ENUMERATED,NCF_PHYSICAL,NCF_MULTIPORT_INSTANCED_ADAPTER,NCF_HAS_UI,NCF_HIDDEN,NCF_NOT_USER_REMOVABLE。
NCF_VIRTUAL,NCF_SOFTWARE_ENUMERATED和NCF_PHYSICAL是相互排斥的。
对于物理适配器,BusType项是必需的。对EISA适配器,EisaCompressedID项是必需的。这个项说明了EISA压缩ID和适配器掩码。多端口网络适配器需要Port1DeviceNumber或Port1FunctionNumber项。
   
DDInstall.Services 需要 无特殊网络需求   
add_reg_sections 需要 需要:
创建Ndi键
说明服务相关值
说明束成员关系(仅对LBFO微端口)
说明绑定接口
可用的绑定接口:
UpperRange:
ndis5,ndisatm,ndiswan,ndiscowan,noupper,ndis5_atalk,ndis5_dlc,nids5_ip,ndis5_ipx,ndis5_nbf,ndis5_streams
LowerRange:
ethernet,atm,tokenring,serial,fddi,baseband,broadbond,arcnet,isdn,localtalk,Wan
可选项:
为组件设置静态参数
需要其他网络组件的安装
为高级属性页说明配置参数
生成定制属性页   
Strings 需要 无特殊网络需求 
                      
WAN适配器的额外需求
以下部分描述WAN适配器的额外安装需求:
·说明端点数目(如信道,电路或bearer Channels)
·为ISDN适配器说明键和值
·安装多协议WAN适配器
不支持
Remove节
通知对象
1.2.11.2网络协议安装要求
本节总结了网络协议的安装需求
一般需求
 
INF文件节 状态 注释   
Version 需要 Class=NetTrans
classGuid={4D36E973-E325-11CE-BFC1-08002BE10318}   
SourceDiskNames和SourceDiskFiles 如果..,
则需要, 如果INF文件没有随Windows 2000发布则需要。如果INF文件随Windows 2000发布,在Version节中必须说明一个LayoutFile项,不使用SourceDiskNames和SourceDisksFiles节。   
DestinationDirs 需要 无特殊网络需求   
ControlFlags   可选 无特殊网络需求   
Manufacturer   需要 无特殊网络需求   
Model   需要 hw_id由提供者名字,下划线和制造商名或产品名组成如:MS_DLC。   
DDInstall   需要 Characteristics项值:
NCF_HIDDEN,NCF_NO_SERVICE,NCF_NOT_USER_REMOVABLE,NCF_HAS_UI   
DDInstall.Services   可选 无特殊网络需求   
add_reg_sections   需要 需要:
创建Ndi键
说明绑定接口
允许的绑定接口:
 UpperRange:
 netbios,ipx,tdi,Winsock,noupper
 LowerRange:
 ndis5,ndisatm,nolower
可选:
为组件设置静态参数
需要其他网络组件的安装
说明相关服务值
说明HelpText值
为一个通知对象说明值   
Remove    可选    
WinsockSections    可选 对于一个提供Winsock接口的协议,Winsock_install是必需的,Winsock-remove节是可选的。   
Strings    需要 无网络特殊需求 

1.2.11.3中间层网络驱动程序的安装需求
本节总结了中间层网络驱动程序的安装需求。
 
INF文件节 状态 注释   
Version 需要  Class=Net
 ClassGuid={4D36E972-E325-11CE-BFC10802BE-10318}   
SourceDiskNames

SourceDisksFiles 如..,
则需要 如果INF文件没有随Windows 2000发布,这个节是必需的。如果INF文件随Windows 2000发布,Version节中的Layoutfile项必须说明,不使用SourceDiskNames和SourceDisksFiles节。   
DestinationDirs 需要  无特殊网络需求   
ControlFlags 可选 无特殊网络需求
   
Manafacturer 需要 无特殊网络需求
   
Models 需要 hw_id由提供者名字,下划线和制造商名字或产品名字组成如:MS_DLC
   
DDInstall 需要  Characteristics项:
NCF_VIRTUAL是必需的。
NCF_HIDDIN和NCF_NOT_USER_REMOVABLE是可选的。
   
 DDInstall.Services  需要 无网络特殊需求
   
 Add-reg-sections  需要  需要:
创建Ndi键
说明相关服务值
说明绑定接口
可用的绑定接口:
UpperRange:
ndis5,ndisatm,ndiswan,ndiscowan,noupper,nids5_atalk,ndis5_dlc,ndis5_ip,ndis5_ipx,ndis5_dbf,ndis5_streams
LowerRange:
ethernet,atm,tokenring,serial,fddi,baseband,broadband,arcnet,isdn,localtalk,wan
可选:
为组件设置静态参数
需要安装其他网络组件
   
 strings  需要 无网络特殊需求
 

1.2.11.4网络过滤器驱动程序的安装需求
本节总结了网络过滤器驱动程序的INF文件需求。安装网络过滤器驱动程序需要2个INF文件:
·一个是为过滤器服务提供的(Class=NetService)
·一个是为过滤器设备提供的(Class=Net)
网络过滤器驱动程序的ServiceINF文件

 
INF文件节 状态 注释
   
Version 需要 Class=NetService
Classguid={4D36E975-E325-11CE-BFC1-08002BE10318}
   
SourceDiskNames和SourceDisksFiles 需要,如果.. 如果INF不随Windows 2000发布,该节是必需的。如果INF文件随Windows 2000发布,Version节中的LayoutFile项必须说明,不使用SourceDisNames和SourceDisksFiles节。
   
DestinationDirs 需要 无特殊网络需求
   
ControlFlags 可选 无特殊网络需求
   
Manufacturer 需要 无特殊网络需求   
Models 需要 hw_id由提供者名字,下划线和制造商名字或产品名组成。如:MS-DLC   
DDInstall 需要 Characteristics项:
NCF-FILTER是必需的。NCF_HAS_UI和NCF_NO_SERVICE是可选的。
   
DDInstall.Services 可选 需要:
生成Ndi键
说明过滤器服务值:
FilterClass,FilterDeviceInfFile,FilterDeviceInfId,FilterMediaTypes
说明绑定接口:
UpperRange:noupper
LowerRange:nolower
可选:
为组件设置静态参数
需要安装其他网络组件
说明一个HelpText值
说明一个通知对象的值
   
Remove 可选    
Strings 需要 无特殊网络需求
 

网络过滤器驱动程序的DeviceINF文件
 
INF文件节 状态 注释   
Version 需求 Class=Net
ClassGuid={4D36E972-E325-11CE-BFC1-08002BE10318}
   
ControlFlags 需要 这个节必须包含ExcludeFromSelect项
   
Manufacturer 需要 无特殊网络要求   
Models 需要 hw_id由提供者名字,下划线和制造商名字或产品名组成。如:MS_DLC。   
DDInstall 需要 Characteristics项:
NCF_VIRTUAL是必须的。
NCF_HIDDEN和NCF_NOT_USER_REMOVABLE是可选的。   
DDInstall.Service 需要 AddService指令的ServiceName值必须和Ndi键下的过滤器组件服务值相匹配。   
add_reg_sections 需要 需要:
创建Ndi键
说明服务相关值
可选:
为组件设置静态参数
需要其他网络组件的安装   
Strings 需要 无特殊网络需求
 

1.2.11.5网络客户的安装需求
本节总结了网络客户的安装需求
 
INF文件节 状态 注释   
 Version  需要 Class=NetClient
ClassGuid={4D36E974-11CE0-BFC1-08002BE10318}
   
 SourceDisksNames
       和
 SourceDisksFiles  需要,
 如果..  如果INF文件没有随Windows 2000发布,该节是必需
 的。如果INF文件随Windows 2000发布,Version节中 的LayoutFiles项必须说明,不使用SourceDiskNames和SourceDisksFiles节。   
 DestinationDirs  需要  无特殊网络需求   
 ControlFlags  可选   无特殊网络需求   
 Manufacturer  需要  无特殊网络需求   
 Models  需要  hw_id由提供者名字,下划线和制造商名字或产品名组
 成。如:MS_DLC。   
 DDInstall   需要 Characteristics项可用值:
NCF_HIDDEN,NCF_NO_SERVICE,NCF_NOT_USER_REMOVABLE,NCF_HAS_UI   
 DDInstall.Services  可选   无特殊网络需求   
 Add_reg_section  需要 需要:
创建Ndi键
说明绑定接口
可用的绑定接口:
UpperRange:noUpper
LowerRange:ipx,tdi,Winsock,netbios,nolower
可选:
为组件设置静态参数
需要安装其他组件
说明服务相关值
说明HelpText值
说明通知对象的值
   
 Remove  可选    
 NetworkProvider  如..,
 则需要。
 如果说明了网络客户的可替代设备名字,或者为使用net view命令而为组件说明了一个短名时,该节是必需的。   
 PrintProvider  如..,
 则需要。  如网络客户是一个打印提供者,该节名是必须的。   
 Strings  需要  无特殊网络需求。 

1.2.11.6网络服务的安装请求
本节总结了网络服务的安装请求。
 
 INF文件节  状态  注释   
 SourceDisksNames
  和
 SourceDisksFiles  如果..,
 则需要.  如果INF文件没有随Windows 2000发布,该节是必需的。
 如果INF文件随Windows 2000发布,在Version节中的
 LayoutFile项必须说明,不使用SourceDiskNames和  
 SourceDisksFiles节。   
 DestionationDirs  需要  无特殊网络需求   
 ControlFlags  可选  无特殊网络需求   
 Manufacturer  需要  无特殊网络需求   
 Models  需要 hw_id由提供者名字,下划线和制造商名字或产品名组
 成。如:MS_DLC。
   
DDInstall 需要 Characteristics项可用值:
NCF_HIDDEN,NCF_NO_SERVICE,NCF_NOT_USER_REMOVABLE,NCF_HAS_UI   
 DDInstall.Service  可选  无网络特殊需求   
 add-reg-sections  需要  需要:
创建Ndi键
说明绑定接口
可用的绑定接口:
UpperRane:noupper
LawerRange:ipx,tdi,Winsock,netbios,nolower
Optional:
为组件设置静态参数
需要安装其他网络组件
说明服务相关值
说明HelpText值
  说明通知对象的值   
 Remove  可选    
 Strings  需要  无特殊网络需求