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结构。 驱动程序将 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT。
若要指示NDIS_PM_PROTOCOL_OFFLOAD结构的版本,请将 Header 的 Revision 成员设置为以下值之一:
NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2
为 NDIS 6.84 添加了 Dot11RSNRekeyParametersV2 结构。
将 Size 成员设置为 NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2。
NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1
NDIS 6.20 及更高版本的原始版本。
将 Size 成员设置为 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) 开头 的偏移量 ( 。 如果 NextProtocolOffloadOffset 为零,则当前结构是列表中的最后一个结构。
ProtocolOffloadParameters
包含以下成员结构的联合:
ProtocolOffloadParameters.IPv4ARPParameters
包含 IPv4 ARP 参数的结构。 此结构包含以下成员:
ProtocolOffloadParameters.IPv4ARPParameters.Flags
包含标志的按位 OR 的 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) 字段。
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 消息时,网络适配器将此数组用于目标链接层地址 (TLLA) NA 消息字段。
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 密钥确认密钥的 UCHAR 数组, (KCK) 。
ProtocolOffloadParameters.Dot11RSNRekeyParameters.KEK[DOT11_RSN_KEK_LENGTH]
包含 IEEE 802.11 密钥加密密钥的 UCHAR 数组, (KEK) 。
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) |