NDIS_PM_WOL_PATTERN 結構 (ntddndis.h)
NDIS_PM_WOL_PATTERN結構會定義網路喚醒 (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
ULONG 值,其中包含 WOL 模式的優先順序。 如果過度使用驅動程式在沒有任何資源可供更多 WOL 模式使用時,增加較高的優先順序的 WOL 模式,NDIS 可能會移除優先順序較低的 WOL 模式來釋放資源。 迷你埠驅動程序應該忽略此成員。 通訊協定驅動程式可以指定預先定義範圍內的任何優先順序。 預先定義下列值:
NDIS_PM_WOL_PRIORITY_LOWEST
指定最低優先順序的 WOL 模式。
NDIS_PM_WOL_PRIORITY_NORMAL
指定一般優先順序的 WOL 模式。
NDIS_PM_WOL_PRIORITY_HIGHEST
指定最高優先順序的 WOL 模式。
WoLPacketType
指定 WOL 封包類型的 NDIS_PM_WOL_PACKET 列舉值。
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 成員會設定為 OID 要求 InformationBuffer 開頭的位移 (,) 清單中下一個NDIS_PM_WOL_PATTERN結構。 如果 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 結構的開頭。
遮罩會指定傳入封包中的位元組應該與點陣圖模式相符。 位掩碼中的每個位都會對應至模式中的位元元組。 如果位為零,則傳入封包中的對應位元組不應與模式相符。 如果位是一個,網路適配器會將位元組與傳入封包與模式中指定的位元組進行比較。
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_WOL_IPV4_DEST_ADDR_WILDCARD_ENABLED旗標是在 NDIS_PM_PARAMETERS 的 EnabledWoLPacketPatterns 成員中設定,則網路適配器必須使用未指定的位址或埠值,以符合 IPv4 TCP SYN 封包中的任何來源或目的地 IPv4 位址或 TCP 通訊埠值。
同樣地,上層驅動程式可以在 IPv6TcpSynParameters 成員結構中指定未指定的IPv6 位址和 TCP 連接埠值。 如果NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_ENABLED旗標是在 NDIS_PM_PARAMETERS 的 EnabledWoLPacketPatterns 成員中設定,則網路適配器必須使用未指定的位址或埠值,以符合 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) |