OID_PNP_ENABLE_WAKE_UP (Windows Embedded CE 6.0)

1/6/2010

This object specifies which wake-up capabilities a miniport should enable in its NIC. This object can also be queried to determine which wake-up capabilities are enabled for a NIC.

The InformationBuffer of an associated NdisRequest structure contains the following flags, which can be combined as a bitwise-OR to enable a combination of wake-up events:

Flag Description

NDIS_PNP_WAKE_UP_MAGIC_PACKET

When set, specifies that the miniport should enable the NIC to signal a wake-up event on receipt of a Magic Packet. (A Magic Packet is a packet that contains 16 contiguous copies of the receiving NIC's Ethernet address.) When cleared, specifies that the miniport should disable the NIC from signaling such a wake-up event.

NDIS_PNP_WAKE_UP_PATTERN_MATCH

When set, specifies that the miniport should enable the NIC to signal a wake-up event on receipt of a packet that contains a pattern specified by the protocol with OID_PNP_ADD_WAKE_UP_PATTERN. When cleared, specifies that the miniport should disable the NIC from signaling such a wake-up event.

NDIS_PNP_WAKE_UP_LINK_CHANGE

When set, specifies that the miniport should enable the NIC to signal a wake-up event in response to a link change (the connection or disconnection of the NIC's network cable). When cleared, specifies that the miniport should disable the NIC from signaling such a wake-up event.

After querying a miniport's wake-up capabilities with an OID_PNP_CAPABILITIES request, a protocol driver can use OID_PNP_ENABLE_WAKE_UP to enable one or more of the NIC's wake-up capabilities. A protocol driver can also query this OID to determine which wake-up capabilities are enabled for a NIC.

NDIS does not immediately enable the wake-up capabilities specified by a protocol. Instead, NDIS keeps track of the wake-up capabilities enabled by the protocol and, just before the miniport transitions to a low-power state, sends an OID_PNP_ENABLE_WAKE_UP to the miniport to enable the appropriate wake-up events.

Wake up due to a link change is enabled by default, provided that the NIC supports such a wake-up event. A protocol cannot enable or disable a link-change wake-up by setting or clearing the NDIS_PNP_WAKE_UP_LINK_CHANGE flag in OID_PNP_ENABLE_WAKE_UP. NDIS, however, sets or clears this flag to enable or disable link-change wake-up, as described below.

Before the miniport transitions to a low-power state (that is, before NDIS sends the miniport an OID_PNP_SET_POWER request), NDIS sends the miniport an OID_PNP_ENABLE_WAKE_UP request to enable the appropriate wake-up capabilities. There are two basic scenarios:

  • If the system is transitioning from the fully on state to a sleeping state, NDIS disables link-change wake-up. If the protocol previously enabled magic-packet wake-up and or pattern-match wake-up, NDIS also enables enable magic-packet wake-up or pattern-match wake-up. This configuration of enabled/disabled wake-up events prevents a link change from inappropriately waking the system when the system is in a sleeping state but enables the NIC to wake the system in response to a magic packet or a pattern match.
  • If the NIC is transitioning from the fully on state to a sleeping state because of a link change (someone disconnected the cable from the NIC), NDIS enables link-change wake-up. NDIS also disables magic-packet wake-up and pattern-match wake-up. In this case, the connection of the network cable to the NIC will cause the NIC to signal a wake-up.

NDIS never enables all three wake-up events for a NIC. NDIS either enables link-change wake-up and disables magic-packet and pattern-match wake-up or disables link-change wake-up and enables any wake-up capabilities (magic-packet wake-up or pattern-match wake-up) enabled by the protocol.

The miniport must take the appropriate device-dependent steps to enable or disable wake-up events on the NIC.

An intermediate driver whose upper edge receives this request must always propagate the request to the underlying miniport by calling NdisRequest.

Requirements

Header ntddndis.h
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

Plug and Play and Power Management Object Identifiers
NDIS_REQUEST
NdisRequest
NDIS_PM_PACKET_PATTERN
NDIS_PNP_CAPABILITIES
OID_PNP_ADD_WAKE_UP_PATTERN
OID_PNP_WAKE_UP_PATTERN_LIST
OID_PNP_SET_POWER
OID_PNP_CAPABILITIES