写入 ADDRESSTABLE 筛选器部分
地址筛选器通知网络监视器驱动程序接受具有各种指定 MAC 地址类型之一的帧, (以太网、令牌环和 FDDI) 。 最多可以指定八个地址对。 地址对可以指定源、目标、两者,或者两者都不指定。
筛选器的地址部分由两个结构组成: ADDRESSTABLE 和 ADDRESSPAIR。
如果指定 NO 地址,则所有帧都将传递地址筛选器。 但是,如果指定任何地址,则只有那些通过给定地址筛选器的帧才会传递。
生成地址筛选器涉及分配 ADDRESSTABLE 结构和填充 ADDRESSPAIR 结构的成员。
生成捕获筛选器的地址部分
使用 CAPTUREFILTER 结构的 CAPTUREFILTER_FLAGS_LOCAL_ONLY 标志将捕获限制为传入和传出本地计算机的流量。
设置此标志不会将 NIC 设置为混杂模式;捕获文件将仅捕获本地流量。
使用以下示例代码定义 ADDRESSTABLE 结构:
typedef struct _ADDRESSTABLE { DWORD nAddressPairs; DWORD nNonMacAddressPairs; ADDRESSPAIR AddressPair[MAX_ADDRESS_PAIRS]; } ADDRESSTABLE; typedef ADDRESSTABLE *LPADDRESSTABLE; typedef struct _ADDRESSPAIR { WORD AddressFlags; WORD NalReserved; ADDRESS DstAddress; ADDRESS SrcAddress; } ADDRESSPAIR; typedef ADDRESSPAIR *LPADDRESSPAIR;
使用下表中列出的信息选择 ADDRESSPAIR 标志类型。
标志 含义 ADDRESS_FLAGS_MATCH_DST 匹配目标地址。 ADDRESS_FLAGS_MATCH_SRC 匹配源地址 ADDRESS_FLAGS_EXCLUDE 如果在定义的源或目标) (找到此地址,则排除该帧。 ADDRESS_FLAGS_DST_GROUP_ADDR 仅匹配广播类型消息) 目标地址的组位 (。 ADDRESS_FLAGS_MATCH_BOTH 匹配目标地址和源地址。 填写目标地址,该地址根据所选的 ADDRESSPAIR 标志进行评估。
填写源地址,该地址根据所选的 ADDRESSPAIR 标志进行评估。
使用 ADDRESSPAIR 结构的数组填充 ADDRESSTABLE 结构,其中包括驱动程序评估的地址对。 所有地址对都作为逻辑 OR 语句计算 (ADDRESSPAIR 1 ||ADDRESSPAIR 2) 。 捕获筛选器中最多可以包含八个地址对。