NDIS_PM_WOL_PATTERN 结构 (ntddndis.h)
NDIS_PM_WOL_PATTERN 结构定义 LAN 唤醒 (WOL) 模式。
语法
typedef struct _NDIS_PM_WOL_PATTERN {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG Priority;
NDIS_PM_WOL_PACKET WoLPacketType;
NDIS_PM_COUNTED_STRING FriendlyName;
ULONG PatternId;
ULONG NextWoLPatternOffset;
union {
struct {
ULONG Flags;
UCHAR IPv4SourceAddress[4];
UCHAR IPv4DestAddress[4];
USHORT TCPSourcePortNumber;
USHORT TCPDestPortNumber;
} IPv4TcpSynParameters;
struct {
ULONG Flags;
UCHAR IPv6SourceAddress[16];
UCHAR IPv6DestAddress[16];
USHORT TCPSourcePortNumber;
USHORT TCPDestPortNumber;
} IPv6TcpSynParameters;
struct {
ULONG Flags;
} EapolRequestIdMessageParameters;
struct {
ULONG Flags;
ULONG MaskOffset;
ULONG MaskSize;
ULONG PatternOffset;
ULONG PatternSize;
} WoLBitMapPattern;
} WoLPattern;
_WOL_PATTERN _WOL_PATTERN;
} NDIS_PM_WOL_PATTERN, *PNDIS_PM_WOL_PATTERN;
成员
Header
NDIS_PM_WOL_PATTERN 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
微型端口驱动程序必须将 Header 的 Type 成员设置为NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_PM_WOL_PATTERN 结构的版本,驱动程序必须将 Header 的 Revision 成员设置为以下值:
NDIS_PM_WOL_PATTERN_REVISION_2
对 NDIS 6.30 的 NDIS_PM_WOL_PACKET 枚举所做的修订。
将 Size 成员设置为 NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_2。
NDIS_PM_WOL_PATTERN_REVISION_1
NDIS 6.20 的原始版本。
将 Size 成员设置为NDIS_SIZEOF_NDIS_PM_WOL_PATTERN_REVISION_1。
Flags
包含标志的按位 OR 的 ULONG 值。 此成员是为 NDIS 保留的。
Priority
包含 WOL 模式优先级的 ULONG 值。 如果没有可用于更多 WOL 模式的资源时,如果过度分配的驱动程序会添加较高优先级的 WOL 模式,则 NDIS 可能会删除优先级较低的 WOL 模式来释放资源。 微型端口驱动程序应忽略此成员。 协议驱动程序可以指定预定义范围内的任何优先级。 预定义了以下值:
NDIS_PM_WOL_PRIORITY_LOWEST
指定最低优先级的 WOL 模式。
NDIS_PM_WOL_PRIORITY_NORMAL
指定普通优先级 WOL 模式。
NDIS_PM_WOL_PRIORITY_HIGHEST
指定最高优先级的 WOL 模式。
WoLPacketType
一个NDIS_PM_WOL_PACKET枚举值,该值指定 WOL 数据包的类型。
FriendlyName
包含 WOL 数据包的用户可读说明的 NDIS_PM_COUNTED_STRING 结构。
PatternId
一个 ULONG 值,该值包含标识 WOL 模式的 NDIS 提供的值。 在 NDIS 将 OID_PM_ADD_WOL_PATTERN OID 请求向下发送到基础 NDIS 驱动程序或完成对过度分配驱动程序的请求之前,NDIS 会将 PatternId 设置为网络适配器上的 WOL 模式中唯一的值。
NextWoLPatternOffset
包含偏移量的 ULONG 值(以字节为单位)。 列表中每个NDIS_PM_WOL_PATTERN结构的 NextWoLPatternOffset 成员设置为与列表中下一个NDIS_PM_WOL_PATTERN结构的 OID 请求 InformationBuffer) 开头的偏移量 (。 如果 NextWoLPatternOffset 为零,则当前结构是列表中的最后一个结构。
WoLPattern
包含以下成员结构的联合。
WoLPattern.IPv4TcpSynParameters
包含 IPv4 TCP SYN 信息的 结构。 此结构包含以下成员:
WoLPattern.IPv4TcpSynParameters.Flags
包含标志的按位 OR 的 ULONG 值。 此成员是为 NDIS 保留的。
WoLPattern.IPv4TcpSynParameters.IPv4SourceAddress[4]
TCP SYN 数据包中的 IPv4 源地址。
WoLPattern.IPv4TcpSynParameters.IPv4DestAddress[4]
TCP SYN 数据包中的 IPv4 目标地址。
WoLPattern.IPv4TcpSynParameters.TCPSourcePortNumber
TCP SYN 数据包中的 TCP 源端口号。
WoLPattern.IPv4TcpSynParameters.TCPDestPortNumber
TCP SYN 数据包中的 TCP 目标端口号。
WoLPattern.IPv6TcpSynParameters
包含 IPv6 TCP SYN 信息的 结构。 此结构包含以下成员:
WoLPattern.IPv6TcpSynParameters.Flags
包含标志的按位 OR 的 ULONG 值。 此成员是为 NDIS 保留的。
WoLPattern.IPv6TcpSynParameters.IPv6SourceAddress[16]
TCP SYN 数据包中的 IPv6 源地址。
WoLPattern.IPv6TcpSynParameters.IPv6DestAddress[16]
TCP SYN 数据包中的 IPv6 目标地址。
WoLPattern.IPv6TcpSynParameters.TCPSourcePortNumber
TCP SYN 数据包中的 TCP 源端口。
WoLPattern.IPv6TcpSynParameters.TCPDestPortNumber
TCP SYN 数据包中的 TCP 目标端口。
WoLPattern.EapolRequestIdMessageParameters
包含 802.1X EAPOL 请求标识消息参数的结构。 此结构包含以下成员:
WoLPattern.EapolRequestIdMessageParameters.Flags
包含标志的按位 OR 的 ULONG 值。 此成员是为 NDIS 保留的。
WoLPattern.WoLBitMapPattern
一个 指定 WOL 位图模式的 结构。 有关位图模式的详细信息,请参阅“备注”部分。 结构具有以下成员:
WoLPattern.WoLBitMapPattern.Flags
包含标志的按位 OR 的 ULONG 值。 此成员是为 NDIS 保留的。
WoLPattern.WoLBitMapPattern.MaskOffset
掩码缓冲区从NDIS_PM_WOL_PATTERN结构开头的偏移量(以字节为单位)。
掩码指定传入数据包中的哪些字节应与位图模式匹配。 位掩码中的每个位对应于 模式中的一个字节。 如果位为零,则传入数据包中的相应字节不应与模式匹配。 如果位为 1,则网络适配器会将字节与传入数据包与模式中指定的字节进行比较。
WoLPattern.WoLBitMapPattern.MaskSize
掩码的大小(以字节为单位)。
WoLPattern.WoLBitMapPattern.PatternOffset
模式缓冲区从NDIS_PM_WOL_PATTERN结构开头的偏移量(以字节为单位)。
WoLPattern.WoLBitMapPattern.PatternSize
模式的大小(以字节为单位)。
_WOL_PATTERN
注解
NDIS_PM_WOL_PATTERN 结构用于 OID_PM_ADD_WOL_PATTERN 和 OID_PM_WOL_PATTERN_LIST OID 请求。
上层驱动程序可以使用 WoLBitMapPattern 成员指定通用 WOL 模式。 位图模式指定为字节序列和掩码位图。 掩码中的每个位对应于模式中的一个字节,并指定是否应将传入数据包中的相应字节与模式中的相应字节进行匹配。 如果网络适配器比较的所有字节都匹配,则数据包是匹配的,并且网络适配器应生成唤醒事件。
上层驱动程序可以在 IPv4TcpSynParameters 成员结构中指定零填充或未指定的 IPv4 地址和 TCP 端口值。 如果在NDIS_PM_PARAMETERS的 EnabledWoLPacketPatterns 成员中设置了NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED标志,则网络适配器必须使用未指定的地址或端口值来匹配 IPv4 TCP SYN 数据包中的任何源或目标 IPv4 地址或 TCP 端口值。
同样,上层驱动程序可以在 IPv6TcpSynParameters 成员结构中指定未指定的 IPv6 地址和 TCP 端口值。 如果在NDIS_PM_PARAMETERS的 EnabledWoLPacketPatterns 成员中设置了NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED标志,则网络适配器必须使用未指定的地址或端口值来匹配 IPv4 TCP SYN 数据包中的任何源或目标 IPv6 地址或 TCP 端口值。
上层驱动程序通过发出OID_PM_PARAMETERS OID 的一组请求来设置 NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED和NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED 标志。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.20 及更高版本中受支持。 |
标头 | ntddndis.h (包括 Ntddndis.h) |