NDIS_PM_PROTOCOL_OFFLOAD结构(ntddndis.h)

NDIS_PM_PROTOCOL_OFFLOAD 结构指定将低功率协议卸载到网络适配器的参数。

语法

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 {
    struct {
      ULONG Flags;
      UCHAR RemoteIPv4Address[4];
      UCHAR HostIPv4Address[4];
      UCHAR MacAddress[6];
    } IPv4ARPParameters;
    struct {
      ULONG Flags;
      UCHAR RemoteIPv6Address[16];
      UCHAR SolicitedNodeIPv6Address[16];
      UCHAR MacAddress[6];
      UCHAR TargetIPv6Addresses[2][16];
    } IPv6NSParameters;
    struct {
      ULONG     Flags;
      UCHAR     KCK[DOT11_RSN_KCK_LENGTH];
      UCHAR     KEK[DOT11_RSN_KEK_LENGTH];
      ULONGLONG KeyReplayCounter;
    } Dot11RSNRekeyParameters;
    struct {
      ULONG     Flags;
      ULONGLONG KeyReplayCounter;
      ULONG     AuthAlgo;
      ULONG     KCKLength;
      ULONG     KEKLength;
      UCHAR     KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
      UCHAR     KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
    } Dot11RSNRekeyParametersV2;
  } ProtocolOffloadParameters;
  _PROTOCOL_OFFLOAD_PARAMETERS  _PROTOCOL_OFFLOAD_PARAMETERS;
} NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;

成员

Header

NDIS_PM_PROTOCOL_OFFLOAD 结构的 NDIS_OBJECT_HEADER 结构。 驱动程序将 类型 成员设置为NDIS_OBJECT_TYPE_DEFAULT。

若要指示 NDIS_PM_PROTOCOL_OFFLOAD 结构的版本,请将 Revision 成员 标头 设置为以下值之一:

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2

为 NDIS 6.84 添加了 Dot11RSNRekeyParametersV2 结构。

大小 成员设置为NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2。

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1

NDIS 6.20 及更高版本的原始版本。

大小 成员设置为NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1。

Flags

包含按位 OR 标志的 ULONG 值。 此成员保留为 NDIS。

Priority

包含协议卸载优先级的 ULONG 值。 如果过度部署的驱动程序在没有可用于更多协议卸载的资源时添加更高的优先级协议卸载,NDIS 可能会删除优先级较低的协议卸载以释放资源。 微型端口驱动程序应忽略此成员。 协议驱动程序可以在预定义范围内提供任何值。 以下值是预定义的:

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST

指定最低优先级协议卸载。

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL

指定正常优先级协议卸载。

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST

指定最高优先级协议卸载。

ProtocolOffloadType

NDIS_PM_PROTOCOL_OFFLOAD_TYPE 包含协议卸载类型的值。

FriendlyName

包含低功率协议卸载的用户可读说明的 NDIS_PM_COUNTED_STRING 结构。

ProtocolOffloadId

一个 ULONG 值,该值包含标识卸载协议的 NDIS 提供的值。 在 NDIS 将 OID_PM_ADD_PROTOCOL_OFFLOAD OID 请求向下发送到基础 NDIS 驱动程序或完成对过度分配驱动程序的请求之前,NDIS 会将 ProtocolOffloadId 设置为在网络适配器上的协议卸载中唯一的值。

NextProtocolOffloadOffset

包含偏移量的 ULONG 值(以字节为单位)。 列表中每个 NDIS_PM_PROTOCOL_OFFLOAD 结构的 NextProtocolOffloadOffset 成员设置为列表中下一个 NDIS_PM_PROTOCOL_OFFLOAD 结构的 OID 请求 InformationBuffer 的偏移量(从 OID 请求 InformationBuffer 开始)。 如果 NextProtocolOffloadOffset 为零,则当前结构是列表中的最后一个结构。

ProtocolOffloadParameters

包含以下成员结构的联合:

ProtocolOffloadParameters.IPv4ARPParameters

包含 IPv4 ARP 参数的结构。 此结构包含以下成员:

ProtocolOffloadParameters.IPv4ARPParameters.Flags

一个 ULONG 值,该值包含标志的按位 。 此成员保留为 NDIS。

ProtocolOffloadParameters.IPv4ARPParameters.RemoteIPv4Address[4]

包含可选 IPv4 地址的 UCHAR 数组。 此地址表示 ARP 请求的源协议地址(SPA)字段。

如果传入 ARP 请求具有与此 IPv4 地址匹配的 SPA 值,则网络适配器在处于低功率状态时发送 ARP 响应。 如果此成员为零,则网络适配器应响应来自任何远程 IPv4 地址的 ARP 请求。

有关 ARP 协议的详细信息,请参阅 RFC 826。

ProtocolOffloadParameters.IPv4ARPParameters.HostIPv4Address[4]

包含 IPv4 地址的 UCHAR 数组。 发送 ARP 响应时,网络适配器将此成员用于响应的 SPA 字段。

ProtocolOffloadParameters.IPv4ARPParameters.MacAddress[6]

包含媒体访问控制(MAC)地址的 UCHAR 数组。 网络适配器将此 MAC 地址用于它生成的 ARP 响应数据包的源硬件地址 (SHA) 字段。

注意 发送 ARP 响应时,网络适配器必须始终在 ARP 有效负载中使用此 MAC 地址。 但是,它应使用网络适配器的当前 MAC 地址作为 MAC 标头中的源地址。
 

ProtocolOffloadParameters.IPv6NSParameters

包含 IPv6 邻居请求 (NS) 参数的结构。 此结构包含以下成员:

ProtocolOffloadParameters.IPv6NSParameters.Flags

包含按位 OR 标志的 ULONG 。 此成员保留为 NDIS。

ProtocolOffloadParameters.IPv6NSParameters.RemoteIPv6Address[16]

包含可选 IPv6 地址的 UCHAR 数组。 此地址表示 NS 消息的 IPv6 标头中的“源地址”字段。

如果传入的 NS 消息具有与此 IPv6 地址匹配的源地址值,则网络适配器在处于低功率状态时发送邻居播发 (NA) 消息。 如果此成员为零,则网络适配器应响应来自任何远程 IPv6 地址的 NS 消息。

有关 IPv6 NS 和 NA 消息的详细信息,请参阅 RFC 4861

ProtocolOffloadParameters.IPv6NSParameters.SolicitedNodeIPv6Address[16]

包含请求节点 IPv6 地址的 UCHAR 数组。 有关这种类型的 IPv6 地址的详细信息,请参阅多播 IPv6 地址。

ProtocolOffloadParameters.IPv6NSParameters.MacAddress[6]

包含 MAC 地址的 UCHAR 数组。 发送 NA 消息时,网络适配器将此数组用于 NA 消息的目标链接层地址 (TLLA) 字段。

注意 发送 NA 消息时,网络适配器必须始终在 NA 消息的 TLLA 字段中使用此 MAC 地址。 但是,它应使用网络适配器的当前 MAC 地址作为 MAC 标头中的源地址。
 

ProtocolOffloadParameters.IPv6NSParameters.TargetIPv6Addresses[2]

包含一个或两个 IPv6 地址的 UCHAR 数组。 如果它只包含一个地址,该地址将存储在数组的第一个元素中,第二个元素用零填充。

微型端口驱动程序必须使用数组中的所有地址。

这些地址表示 NS 消息的目标地址字段。 如果其中一个地址与传入 NS 消息的目标地址字段匹配,则网络适配器会在响应中发送 NA 消息。

ProtocolOffloadParameters.Dot11RSNRekeyParameters

包含 IEEE 802.11i 可靠安全网络 (RSN) 握手参数的结构。 此结构包含以下成员:

ProtocolOffloadParameters.Dot11RSNRekeyParameters.Flags

包含按位 OR 标志的 ULONG 。 此成员保留为 NDIS。

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KCK[DOT11_RSN_KCK_LENGTH]

包含 IEEE 802.11 密钥确认键(KCK)的 UCHAR 数组。

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KEK[DOT11_RSN_KEK_LENGTH]

包含 IEEE 802.11 密钥加密密钥(KEK)的 UCHAR 数组。

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KeyReplayCounter

包含重播计数器的 ULONGLONG 值。

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2

包含 V2 IEEE 802.11i 可靠安全网络 (RSN) 握手参数的结构。 在 NDIS 6.84 及更高版本中可用。 此结构包含以下成员:

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.Flags

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KeyReplayCounter

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.AuthAlgo

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

_PROTOCOL_OFFLOAD_PARAMETERS

言论

NDIS_PM_PROTOCOL_OFFLOAD 结构用于 OID_PM_ADD_PROTOCOL_OFFLOAD OID_PM_PROTOCOL_OFFLOAD_LIST OID。

要求

要求 价值
最低支持的客户端 NDIS 6.20 及更高版本中受支持。
标头 ntddndis.h (包括 Ntddndis.h)

另请参阅

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_PROTOCOL_OFFLOAD_TYPE

OID_PM_ADD_PROTOCOL_OFFLOAD

OID_PM_PROTOCOL_OFFLOAD_LIST