3.5  Binding Review

When a network component’s .inf script runs and it sets one as the value of the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\
NameOfComponent\CurrentVersion\Review entry, this setup file is run a second time after the binding engine has written the results of its analysis to the registry. During its review pass, a driver’s setup file reviews the Bind, Export, and Route values written by the binding engine, and deletes any inappropriate bindings, a process known as “pruning.”

A review can be also requested by setting the Review entry to one to do other operations for a network component after the bindings have been generated. For instance, the system TCP/IP transport uses its review pass to read the available adapters it has to work with and to assign IP addresses to them.

Unless restricted by a component's net rules, the binding engine will generate a list of possible adapters for any transport protocol driver that, according to the system's built-in rules, lists all available NICs in the machine, including NICs of media types that the transport might not support.

In other words, a network component must have an .inf file that requests a review pass during which the generated bindings are reviewed and any unusable bindings pruned if the net rules it specifies cannot restrict the bindings generated by the binding engine.

If pruning of unusable bindings is not done before driver initialization, when a transport protocol, for instance, calls NdisOpenAdapter, a miniport for an underlying adapter can select a medium the transport does not support. When this occurs, the transport's call to NdisOpenAdapter fails, and an error message is written to the event log. This error message can be avoided if the transport prunes bindings in a review pass prior to driver initialization to delete any NICs that are not possible partners. Developers should write an .inf script that reviews and prunes bindings for every component for which net rules cannot be used to restrict the generated bindings list.

NIC miniports seldom, if ever, request a review pass. They usually set the Review entry to zero because the net rules for NIC drivers can be used to restrict the list of generated bindings between the miniport and the NICs in the machine.