发信人: 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.
---- 掬水月在手
弄花香满身
|
|