Handling PnP Events and Power Management Events in an Intermediate Driver

An intermediate driver must be able to handle Plug and Play (PnP) events and power management events. Specifically:

  • An intermediate driver must set the NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND flag in the AttributeFlags member of the NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES structure that is passed to NdisMSetMiniportAttributes. For more information, see Initializing as a Miniport.

  • The virtual miniport of an intermediate driver must handle OID_PNP_Xxx requests.

  • The protocol section of an intermediate driver should propagate appropriate OID_PNP_Xxx requests to the underlying miniport drivers. The virtual miniport of the intermediate driver should pass the underlying miniport driver's responses to these requests back to the protocol driver that originated the requests. The intermediate driver does not have to pass requests that are not required by design. For example, when there is not a one-to-one relationship between virtual miniports and underlying miniport adapters as in Load Balancing Failover (LBFO) applications.

  • The protocol portion of an intermediate driver must supply a ProtocolNetPnPEvent function.

Intermediate driver protocol and miniport event handlers are not called in any particular order. Event handlers for intermediate drivers should be implemented accordingly.

This section includes the following topics:

Initializing Intermediate Drivers to Handle PnP and Power Management Events

Handling OID_PNP_Xxx Queries and Sets

Implementing a ProtocolNetPnPEvent Handler in an Intermediate Driver

Handling a Set Power Request