About Network Wake-Up Events

A network wake-up event is an external event that causes a network adapter to wake the system. A network adapter wakes the system by asserting a bus-specific wake-up signal that eventually results in the system making a transition from a sleeping state to the working state.

NDIS defines the following two network wake-up events:

  • Receipt of a network wake-up frame that contains a pattern that was specified by a bound protocol driver.

  • Receipt of a Magic Packet.

A network adapter can support any combination of network wake-up events, including none at all. NDIS treats the miniport driver as not power management-aware if the miniport driver sets the PowerManagementCapabilities member of NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES to NULL.

Depending on the capabilities of the network adapter, a network wake-up event can occur from any device power state, including the highest-powered state (D0).

Network Wake-Up Frames

If, during initialization, a miniport driver indicates that a network adapter can signal a wake-up on the receipt of a packet that contains a specified pattern, a bound protocol can enable the pattern-based wake up method on the network adapter and specify wake-up patterns. To enable this type of wake-up, a protocol driver sets the NDIS_PNP_WAKE_UP_PATTERN_MATCH flag in OID_PNP_ENABLE_WAKE_UP.

A protocol driver uses OID_PNP_ADD_WAKE_UP_PATTERN to specify a wake-up pattern, along with a mask that indicates which bytes of an incoming packet should be compared with the pattern. A protocol driver can remove a wake-up pattern with OID_PNP_REMOVE_WAKE_UP_PATTERN.

Magic-Packet Wake-Up

A Magic Packet is a packet that contains 16 contiguous copies of the receiving network adapter's MAC address.

This section includes:

Enabling Wake-Up Events

Handling Wake-Up Events