Previous Next

NDIS Intermediate Drivers

As the following figure illustrates, intermediate drivers are typically layered between miniport drivers and transport protocol drivers.

Intermediate Driver Layered Between Miniport Driver and Transport Driver

Because of its intermediate position in the driver hierarchy, an intermediate driver must communicate with both overlying protocol drivers and underlying miniport drivers in order to expose:

Although it exports a subset of the MiniportXxx functions at its upper edge, an intermediate driver does not actually manage a physical NIC. Instead, it exports one or more virtual adapters, to which overlying protocols can bind. To a protocol driver, a virtual adapter exported by an intermediate driver appears to be a physical NIC. When a protocol driver sends packets or requests to a virtual adapter, the intermediate driver propagates these packets and requests to the underlying miniport driver. When the underlying miniport driver indicates up receives packets, responds to a protocol’s requests for information, or indicates status, the intermediate driver propagates such packets, responses, and status up to the protocol drivers that are bound to the virtual adapter.

Intermediate drivers are typically used to: