ECM SetEthernetPowerManagementPatternFilter请求
2025-07-10
0
0
SetEthernetPowerManagementPatternFilter 请求用于设置指定的以太网电源管理模式过滤器(Power Management Pattern Filter),以便设备能够在检测到特定网络流量时唤醒主机,实现远程唤醒等节能功能。
请求格式
字段 | 值/说明 | 描述 |
---|---|---|
bmRequestType | 00100001B |
主机到设备,类请求,接口 |
bRequestCode | SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER (41h) |
请求码 |
wValue | 过滤器编号 | 指定要设置的过滤器编号 |
wIndex | 接口号 | 目标接口编号 |
wLength | 结构体大小 | Power Management Pattern Filter结构体的字节数 |
Data | 结构体内容 | Power Management Pattern Filter结构体(见下表) |
Power Management Pattern Filter 结构体
字段名 | 大小 | 描述 |
---|---|---|
MaskSize | 2 | 掩码的字节数。 |
Mask | MaskSize | 每字节8个掩码位,每一位表示Pattern中对应字节是否参与比较。第一个字节的最低位(D0)对应Pattern的第一个字节(以太网帧DA)。Mask最后一个字节的高位为0时,Pattern中对应字节不参与匹配。 |
Pattern | 由Mask指定 | 需要进行模式匹配的字节串,从以太网帧的第0字节(DA)开始。 |
特殊说明
- 远程唤醒:如需启用远程唤醒,还需完成[USB2.0]中描述的额外步骤。
- 清除过滤器:如果主机希望清除(移除)之前设置的指定模式过滤器,只需将
wLength
设为0,且不带任何数据字段(即无结构体内容)。 - 设备容量不足:如果指定的模式无法装入设备,任何之前加载的模式都视为已销毁,设备必须在后续
GetEthernetPowerManagementPatternFilter
请求返回的状态中设置为FALSE
(0x0000)。
示例结构体定义
struct PowerManagementPatternFilter {
uint16_t MaskSize; // 掩码长度
uint8_t Mask[]; // 掩码位数组
uint8_t Pattern[]; // 匹配模式字节数组
};
应用场景
- 节能唤醒:主机休眠时,设备可通过检测特定网络流量(如特定网页访问)唤醒主机。
- 灵活匹配:通过掩码和模式字段灵活定义需要匹配的以太网帧内容。
总结
- 设置/清除电源管理模式过滤器时,需严格按照结构体格式和协议要求操作。
- 清除时只需
wLength=0
,无需数据。 - 设置时需提供完整的掩码和模式内容,掩码决定哪些字节参与匹配。
- 设备容量不足时,所有已加载模式视为无效,状态返回
FALSE
。