Required and Optional OIDs for Power Management
For a miniport driver, supporting power management involves supporting power management object identifiers (OIDs). For a detailed description of how miniport drivers process queries and sets to OIDs, see Obtaining and SettingMiniport Driver Information and NDIS Support for WMI.
There are two levels of power management support for miniport drivers:
A miniport driver can support a network adapter making a transition between power states. This support is the minimum level of power management support. For a description of device power states for network adapters, see Device Power States for Network Adapters.
A miniport driver can also support one or more network wake-up events.
Miniport drivers report power management capabilities during initialization. For more information about power management capabilities that are reported during initialization, see NDIS_MINIPORT_ADAPTER_ATTRIBUTES and the related attributes structures.
A miniport driver must support the following OIDs directly or in attributes for a network adapter to make a transition between power states:
-
Intermediate drivers must respond to this OID query. NDIS responds to OID_PNP_CAPABILITIES requests on behalf of physical network adapters. For more information about responding to this OID in an intermediate driver, see Handling PnP Events and Power Management Events in an Intermediate Driver.
-
This OID specifies a device power state to which the network adapter should prepare to transition. A miniport driver must always return NDIS_STATUS_SUCCESS in response to a query of OID_PNP_QUERY_POWER. By returning NDIS_STATUS_SUCCESS in response to this OID request, the miniport driver guarantees that it will transition the network adapter to the specified device power state on receipt of a subsequent OID_PNP_SET_POWER request. The miniport driver, in this case, must do nothing to jeopardize the transition.
-
This OID indicates that the network adapter must transition to the indicated device power state. A miniport driver must set the network adapter to the specified state before the driver returns NDIS_STATUS_SUCCESS. A miniport driver must always return NDIS_STATUS_SUCCESS in response to this OID. If OID_PNP_SET_POWER sets a network adapter to working power state and the miniport driver fails this OID, NDIS assumes that the device is in an unrecoverable state.
To support network wake-up events, a miniport driver must also support the OID_PNP_ENABLE_WAKE_UP OID. Both protocol drivers and NDIS use this OID to enable a network adapter's wake-up capabilities. For more information, see Enabling Wake-Up Events.
To support network wake-up frames (see Network Wake-Up Events), a miniport driver must also support the following OIDs that are related to wake-up events:
-
A protocol driver uses this OID to add a wake-up pattern to a list that either the network adapter or miniport driver or both maintain.
OID_PNP_REMOVE_WAKE_UP_PATTERN
A protocol driver uses this OID to delete a wake-up pattern that it previously specified with OID_PNP_ADD_WAKE_UP_PATTERN.
NDIS miniport drivers that support network wake-up events can optionally support the following statistical OIDs that are related to wake-up events:
-
Protocol drivers query this OID to determine the number of false wake-ups signaled by the miniport driver's network adapter.
-
Protocol drivers query this OID to determine the number of valid wake-ups that are signaled by the miniport driver's network adapter.