NET_ADAPTER_POWER_CAPABILITIES structure

Warning

Some information in this topic relates to prereleased product, which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

NetAdapterCx is preview only in Windows 10, version 1903.

Describes the power capabilities of the adapter.

Syntax

typedef struct _NET_ADAPTER_POWER_CAPABILITIES {
  ULONG                                          Size;
  NET_ADAPTER_POWER_FLAGS                        Flags;
  NET_ADAPTER_WAKE_PATTERN_FLAGS                 SupportedWakePatterns;
  ULONG                                          NumTotalWakePatterns;
  ULONG                                          MaxWakePatternSize;
  ULONG                                          MaxWakePatternOffset;
  ULONG                                          MaxWakePacketSaveBuffer;
  NET_ADAPTER_PROTOCOL_OFFLOADS_FLAGS            SupportedProtocolOffloads;
  ULONG                                          NumArpOffloadIPv4Addresses;
  ULONG                                          NumNSOffloadIPv6Addresses;
  NET_ADAPTER_WAKEUP_EVENTS_FLAGS                SupportedWakeUpEvents;
  NET_ADAPTER_MEDIA_SPECIFIC_WAKEUP_EVENTS_FLAGS SupportedMediaSpecificWakeUpEvents;
  PFN_NET_ADAPTER_PREVIEW_WAKE_PATTERN           EvtAdapterPreviewWakePattern;
  PFN_NET_ADAPTER_PREVIEW_PROTOCOL_OFFLOAD       EvtAdapterPreviewProtocolOffload;
  WDF_TRI_STATE                                  ManageS0IdlePowerReferences;
} NET_ADAPTER_POWER_CAPABILITIES;

Members

Size

The size of this structure, in bytes.

Flags

A bitwise OR of NET_ADAPTER_POWER_FLAGS-typed flags.

SupportedWakePatterns

A bitwise OR of NET_ADAPTER_WAKE_PATTERN_FLAGS-typed flags that specify the wake-on-LAN (WOL) patterns that a network adapter supports.

NumTotalWakePatterns

The total number of wake patterns that a network adapter supports. This is the sum of the number of supported wake protocol patterns and the number of supported wake bitmap patterns.

MaxWakePatternSize

The maximum number of bytes that can be compared with a pattern.

MaxWakePatternOffset

The number of bytes in a packet that can be examined, starting at the beginning of the MAC header.

MaxWakePacketSaveBuffer

The number of bytes of a wake packet that the client can save to a buffer and indicate up the driver stack. This value must be less than or equal to the size, in bytes, of the maximum transmission unit (MTU) for the network media.

SupportedProtocolOffloads

A bitwise OR of NET_ADAPTER_PROTOCOL_OFFLOADS_FLAGS-typed flags that specify the protocol offload features that a network adapter supports.

NumArpOffloadIPv4Addresses

The number of IPv4 addresses that the adapter supports for ARP offload.

NumNSOffloadIPv6Addresses

The number of IPv6 NS offload requests that the adapter supports. This should be at least 2.

SupportedWakeUpEvents

A bitwise OR of NET_ADAPTER_WAKEUP_EVENTS_FLAGS-typed flags that specify the media-independent wake-up events that a network adapter supports.

SupportedMediaSpecificWakeUpEvents

A bitwise OR of NET_ADAPTER_MEDIA_SPECIFIC_WAKEUP_EVENTS_FLAGS-typed flags that specify the media-specific wake-up events that a network adapter supports.

EvtAdapterPreviewWakePattern

A pointer to the client's implementation of the EVT_NET_ADAPTER_PREVIEW_WAKE_PATTERN event callback.

EvtAdapterPreviewProtocolOffload

A pointer to the client's implementation of the EVT_NET_ADAPTER_PREVIEW_PROTOCOL_OFFLOAD event callback.

ManageS0IdlePowerReferences

A WDF_TRI_STATE-typed enumerator that indicates whether NetAdapterCx should manage power references for scenarios such as modern standby (AoAC). See more info in the Remarks section. This member can have one of the following values:

WdfTrue - NetAdapterCx manages power references. The client driver must be the power policy owner to specify WdfTrue. WdfFalse - NetAdapterCx does not manage power references. WdfUseDefault : if driver is the power policy owner, then use WdfTrue; otherwise, use WdfFalse.

Remarks

The client driver passes an initialized NET_ADAPTER_POWER_CAPABILITIES structure as an input parameter value to NetAdapterSetPowerCapabilities.

Call NET_ADAPTER_POWER_CAPABILITIES_INIT to initialize this structure.

The client driver configures its S0-Idle policy like any other WDF driver, by calling WdfDeviceAssignS0IdleSettings.

When power reference management is enabled via ManageS0IdlePowerReferences, NetAdapterCx manages power references that result in the WDFDEVICE being powered up/down as necessary. For example, the class extension acquires and releases power references so the device maintains power state as necessary to support modern standby (AoAC). Additionally, the client driver can set the NET_ADAPTER_POWER_SELECTIVE_SUSPEND flag in the NET_ADAPTER_POWER_FLAGS enumeration to cause NetAdapterCx to manage power references for the data and control path. This will result in the device being powered down when it is idle. Note that the NET_ADAPTER_POWER_SELECTIVE_SUSPEND option results in improved power efficiency at the cost of some performance.

Requirements

   
Minimum KMDF version 1.21
Header netadapter.h

See Also

Power Policy Ownership