INFO: Controlling Stacking Order of NDIS 5.0 Intermediate Drivers (250615)



The information in this article applies to:

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Driver Development Kit (DDK)

This article was previously published under Q250615

SUMMARY

This article discusses how to control the stacking order of multiple intermediate drivers on Windows 2000.

MORE INFORMATION

Intermediate drivers are layered according to the value of the HKLM\System\CurrentControlSet\Control\Network: FilterClasses REG_MULTI_SZ registry name. This value defaults to the following:
scheduler
loadbalance
failover
				
When a new filter is installed, its Ndi\FilterClass string value is looked up in this list. If the value exists, the filter is stacked in that position relative to other filters that may be present (top of the list is closer to protocol, bottom of the list is closer to adapter). Microsoft has defined these classes up front to give filter writers a predefined and dependable load order. Microsoft does not recommend that you change the order of these default values. Doing so may break third-party filters.

Driver writers should first try to fit their filter into one of the existing categories. If your filter needs to be closer to the adapter and provide a failover-type solution, you should choose "failover" as your Ndi\FilterClass. Do not specify a class just to get into a certain load order. A particular FilterClass implies a certain functionality, and if a driver uses a FilterClass and doesn't provide the implied functionality, then it is preventing the installation of a filter driver that really does what is implied.

If your driver doesn't fit into these predefined classes, then you can define a new class (for example, FilterClass=Sniff). When you install, your new class is appended to the FilterClasse's multi-sz registry value. If you are installing two different filters that define their own classes, then the bind order is dictated by the install order. In other words, new filters that don't belong to one of the predefined classes are affinitized to the adapter in the order that they are installed.

There are a few problems associated with defining your own class. Once the filter drivers are installed, you cannot change the order by uninstalling and reinstalling because the values appended during the first install are never changed. The only way to undo the values is to uninstall the filters and reset the FilterClasses values by some other means.

Modification Type:MajorLast Reviewed:12/17/2003
Keywords:kbinfo kbnetwork KB250615