NDIS_PM_PROTOCOL_OFFLOAD structure

The NDIS_PM_PROTOCOL_OFFLOAD structure specifies parameters for a low power protocol offload to a network adapter.

Syntax


typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
  NDIS_OBJECT_HEADER                 Header;
  ULONG                              Flags;
  ULONG                              Priority;
  NDIS_PM_PROTOCOL_OFFLOAD_TYPE      ProtocolOffloadType;
  NDIS_PM_COUNTED_STRING             FriendlyName;
  ULONG                              ProtocolOffloadId;
  ULONG                              NextProtocolOffloadOffset;
  union _PROTOCOL_OFFLOAD_PARAMETERS {
    struct _IPV4_ARP_PARAMETERS {
      ULONG Flags;
      UCHAR RemoteIPv4Address[4];
      UCHAR HostIPv4Address[4];
      UCHAR MacAddress[6];
    } IPv4ARPParameters;
    struct _IPV6_NS_PARAMETERS {
      ULONG Flags;
      UCHAR RemoteIPv6Address[16];
      UCHAR SolicitedNodeIPv6Address[16];
      UCHAR MacAddress[6];
      UCHAR TargetIPv6Addresses[2][16];
    } IPv6NSParameters;
    struct _DOT11_RSN_REKEY_PARAMETERS {
      ULONG     Flags;
      UCHAR     KCK[DOT11_RSN_KCK_LENGTH];
      UCHAR     KEK[DOT11_RSN_KEK_LENGTH];
      ULONGLONG KeyReplayCounter;
    } Dot11RSNRekeyParameters;
  } ProtocolOffloadParameters;
} NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;

Members

Header

The NDIS_OBJECT_HEADER structure for the structure (NDIS_PM_PROTOCOL_OFFLOAD). The driver sets the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_DEFAULT, the Revision member to NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1, and the Size member to NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1.

Flags

A ULONG value that contains a bitwise OR of flags. This member is reserved for NDIS.

Priority

A ULONG value that contains the priority of the protocol offload. If an overlying driver adds a higher priority protocol offload when there are no resources that are available for more protocol offloads, NDIS might remove a lower priority protocol offload to free resources. Miniport drivers should ignore this member. Protocol drivers can provide any value within the predefined range. The following values are predefined:

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST

Specifies the lowest priority protocol offload.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL

Specifies a normal priority protocol offload.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST

Specifies the highest priority protocol offload.

ProtocolOffloadType

An NDIS_PM_PROTOCOL_OFFLOAD_TYPE value that contains the type of protocol offload.

FriendlyName

An NDIS_PM_COUNTED_STRING structure that contains the user-readable description of the low power protocol offload.

ProtocolOffloadId

A ULONG value that contains an NDIS-provided value that identifies the offloaded protocol. Before NDIS sends the OID_PM_ADD_PROTOCOL_OFFLOAD OID request down to the underlying NDIS drivers or completes the request to the overlying driver, NDIS sets ProtocolOffloadId to a value that is unique among the protocol offloads on a network adapter.

NextProtocolOffloadOffset

A ULONG value that contains an offset, in bytes. The NextProtocolOffloadOffset member of each NDIS_PM_PROTOCOL_OFFLOAD structure in a list is set to the offset (from the beginning of the OID request InformationBuffer) of the next NDIS_PM_PROTOCOL_OFFLOAD structure in the list. If NextProtocolOffloadOffset is zero, the current structure is the last structure in the list.

ProtocolOffloadParameters

A union that contains the following member structures:

IPv4ARPParameters

A structure that contains IPv4 ARP parameters. This structure contains the following members:

Flags

A ULONG value that contains a bitwise OR of flags. This member is reserved for NDIS.

RemoteIPv4Address

A UCHAR array that contains an optional IPv4 address. This address represents the Source Protocol Address (SPA) field of the ARP request.

If the incoming ARP request has an SPA value that matches this IPv4 address, the network adapter sends an ARP response when it is in a low power state. If this member is zero, the network adapter should respond to ARP requests from any remote IPv4 address.

For more information about the ARP protocol, see RFC 826.

HostIPv4Address

A UCHAR array that contains the IPv4 address. When it sends the ARP response, the network adapter uses this member for the SPA field of the response.

MacAddress

A UCHAR array that contains a media access control (MAC) address. The network adapter uses this MAC address for the Source Hardware Address (SHA) field of the ARP response packet that it generates.

Note  When it sends an ARP response, the network adapter must always use this MAC address in the ARP payload. However, it should use the current MAC address of the network adapter as the source address in the MAC header.

IPv6NSParameters

A structure that contains IPv6 Neighbor Solicitation (NS) parameters. This structure contains the following members:

Flags

A ULONG value that contains a bitwise OR of flags. This member is reserved for NDIS.

RemoteIPv6Address

A UCHAR array that contains an optional IPv6 address. This address represents the Source Address field in the IPv6 header of the NS message.

If the incoming NS message has a Source Address value that matches this IPv6 address, the network adapter sends a neighbor advertisement (NA) message when it is in a low power state. If this member is zero, the network adapter should respond to NS messages from any remote IPv6 address.

For more information about IPv6 NS and NA messages, see RFC 4861.

SolicitedNodeIPv6Address

A UCHAR array that contains the solicited node IPv6 address. For more information about this type of IPv6 address, see Multicast IPv6 Addresses.

MacAddress

A UCHAR array that contains the MAC address. When it sends the NA message, the network adapter uses this array for the target link-layer address (TLLA) field of the NA message.

Note  When it sends an NA message, the network adapter must always use this MAC address in the TLLA field of the NA message. However, it should use the current MAC address of the network adapter as the source address in the MAC header.

TargetIPv6Addresses

A UCHAR array that contains one or two IPv6 addresses. If it contains only one address, that address is stored in the first element in the array, and the second element is filled with zeros.

Miniport drivers must consume all addresses in the array.

These addresses represent the Target Address field of an NS message. If one of these addresses matches the Target Address field of an incoming NS message, the network adapter sends an NA message in response.

Dot11RSNRekeyParameters

A structure that contains IEEE 802.11i Robust Security Network (RSN) handshake parameters. This structure contains the following members:

Flags

A ULONG value that contains a bitwise OR of flags. This member is reserved for NDIS.

KCK

A UCHAR array that contains an IEEE 802.11 key confirmation key (KCK).

KEK

A UCHAR array that contains an IEEE 802.11 key encryption key (KEK).

KeyReplayCounter

A ULONGLONG value that contains a replay counter.

Remarks

The NDIS_PM_PROTOCOL_OFFLOAD structure is used in the OID_PM_ADD_PROTOCOL_OFFLOAD and OID_PM_PROTOCOL_OFFLOAD_LIST OIDs.

Requirements

Version

Supported in NDIS 6.20 and later.

Header

Ntddndis.h (include Ntddndis.h)

See also

NDIS_OBJECT_HEADER
NDIS_PM_COUNTED_STRING
NDIS_PM_PROTOCOL_OFFLOAD_TYPE
OID_PM_ADD_PROTOCOL_OFFLOAD
OID_PM_PROTOCOL_OFFLOAD_LIST

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft