精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>嵌入式开发>>协议栈开发>>NT协议栈开发要点>>NT的协议栈开发要点(6)

主题:NT的协议栈开发要点(6)
发信人: wenbobo(灌了拂衣去)
整理人: wenbobo(2002-09-22 17:48:52), 站内信件
NDIS Versions
If you are writing an NDIS driver for more than one version of Windows, be sure the features that you are using are supported on each Windows version. New features have been added to NDIS with each release. Other features became obsolete and were removed from later NDIS versions. 
Windows operating system and DDK version support for NDIS versions, as well as support for major NDIS features across NDIS versions, are described in the following table:

Operating         Supported NDIS    CoNDIS    Deserialized    Intermediate
System             Version                      Driver          Driver
Windows 95
        3.1
Windows NT 4.0 DDK
Windows 95 DDK    Added support for miniport drivers and Plug and Play.                        
Windows 95 OSR2     4.0
Windows NT 4.0 DDK 
Windows 95 DDK 
                  Protocol driver is a vxd-type driver.                        
Windows 98         4.1               X         X               X
Windows NT 4.0 DDK
Windows 98 DDK    Protocol driver is a vxd-type driver.
Windows 98 SE      5.0               X         X               X
Windows NT 4.0 DDK
Windows 98 DDK      Added support for Power Management and WMI.
Windows Me          5.0               X         X               X
Windows 2000 DDK
Windows 98 DDK for 
 Vxds
Windows NT 3.5    3.0
Windows NT 3.5 DDK
Windows NT 4.0    4.0
Windows NT 4.0 DDK 
                  Added these features: 
                  * MiniportSendPackets 
                  * ProtocolReceivePacket 
                  * MiniportAllocateComplete 
Windows NT 4.0 
SP3
               4.1               X         X               X
Windows NT DDK with 
updated NDIS header 
and library
Windows 2000      5.0               X         X               X
Windows 2000 DDK
                  Added support for: 
                  * New INF file format compatible with Windows 95/98/Me 
                  * Plug and Play and Power Management 
                  * WMI 
                  * LBFO 
                  * Scatter/gather DMA support for deserialized miniport drivers 
Windows XP        5.1               X         X               X
Windows XP DDK
                  Added support for: 
                  * MiniportCancelSendPackets 
                  * MiniportPnPEventNotify 
                  * MiniportShutdown 
                  * Scatter/gather support for both serialized and deserialized miniport drivers 
                  * Packet stacking for intermediate drivers 
                  * VLAN tagging 
                  * Dropped support for: 
                  * Full Mac drivers 
                  * NDIS 3.0 protocols




Security Issues for Network Drivers

For a general discussion on writing secure drivers, see TBD.

In particular, network drivers should do the following to enhance security: 

* All drivers should validate values that they read from the registry. Specifically, the caller of NdisReadConfiguration or NdisReadNetworkAddress must not make any assumptions about values read from the registry and must validate each registry value that it reads. If the caller of NdisReadConfiguration determines that a value is out of bounds, it should use a default value instead. If the caller of NdisReadNetworkAddress determines that a value is out of bounds, it should use the permanent medium access control (MAC) address or a default address instead. 

* A miniport driver, in its MiniportSetInformation or MiniportCoRequest functions, should validate any object identifier (OID) value that the driver is requested to set. If the driver determines that the value to be set is out of bounds, it should fail the set request. For more information on object identifiers, see Obtaining and Setting Miniport Driver Information and NDIS Support for WMI

* If an intermediate driver's MiniportSetInformation function does not pass a set operation to an underlying miniport driver, the function should validate the OID value. For more information, see Intermediate Driver Query and Set Operations.


----
掬水月在手
弄花香满身


广州社区嵌入式开发版    广州社区C语言版     我的纯音乐网站

[关闭][返回]