ExpertGetFrame 函数
ExpertGetFrame 函数从加载的捕获返回请求的帧。
语法
DWORD WINAPI ExpertGetFrame(
_In_ HEXPERTKEY hExpertKey,
_In_ DWORD Direction,
_In_ DWORD RequestFlags,
_In_ DWORD RequestedFrameNumber,
_In_ HFILTER hFilter,
_Out_ LPEXPERTFRAMEDESCRIPTOR pEFrameDescriptor
);
参数
-
hExpertKey [in]
-
唯一的专家标识符。 网络监视器在调用 Run 函数时将 hExpertKey 标识符传递给专家。
-
方向 [in]
-
一个 值,该值标识网络监视器如何搜索帧。
值 含义 - GET_SPECIFIED_FRAME
返回请求的帧。 - GET_FRAME_NEXT_FORWARD
返回下一帧。 - GET_FRAME_NEXT_BACKWARD
返回上一帧。 -
RequestFlags [in]
-
指定网络监视器应如何处理请求的标志。 指定以下一个或多个标志。
值 含义 - FLAGS_DEFER_TO_UI_FILTER
在应用 hFilter 中指定的专家的显示筛选器参数之前,请应用网络监视器在专家启动时使用的显示筛选器。 - FLAGS_ATTACH_PROPERTIES
所有协议分析程序在此帧的声明部分中找到的属性将附加到帧。 如果未设置标志,pEFrameDescriptor () 返回的 EXPERTFRAMEDESCRIPTOR 结构的 lpPropertyTable 字段将设置为 NULL。 -
RequestedFrameNumber [in]
-
请求的帧数。
-
hFilter [in]
-
专家显示筛选器的句柄。 如果专家没有显示筛选器,请将 参数设置为 NULL。
-
pEFrameDescriptor [out]
-
返回时描述帧的 EXPERTFRAMEDESCRIPTOR 结构。 专家必须分配并释放此结构使用的内存。
返回值
如果函数成功,则返回值NMERR_SUCCESS。
如果函数不成功,则返回值指示失败的原因。 如果返回值为NMERR_EXPERT_TERMINATE,专家必须立即清理并返回:用户已中止专家运行。
备注
如果设置FLAGS_ATTACH_PROPERTIES,则调用所需的资源比未设置标志的资源多。 如果未设置标志,指针将指向原始帧和有关该帧的数据。 如果设置了此标志,则网络监视器通过调用声明帧部分的每个分析程序,将所有属性附加到帧。 此过程可能很慢。
除非专家需要分析程序附加到框架的属性,否则专家不应设置FLAGS_ATTACH_PROPERTIES标志。 如果可能,专家应调用不带 标志的 ExpertGetFrame 函数,然后直接从帧中提取所需的数据。
如果专家在没有FLAGS_ATTACH_PROPERTIES标志的情况下调用 ExpertGetFrame ,并且要求 (事件 (与该帧关联的属性(例如) ),则专家调用 ExpertGetFrame ,参数相同,但以下参数除外:
Direction = EXPERT_GET_SPECIFIED_FRAME;
RequestFlags &= (~EXPERT_DEFER_TO_UI_FILTER) | EXPERT_ATTACH_PROPERTIES;
RequestedFrameNumber= (The actual frame number you want);
hFilter = NULL;
pEFrameDescriptor = (The same one as last time);
使用上述代码可确保专家获取所需的帧,而无需再次调用筛选器代码。
可以将 hFilter 参数设置为 LPVOID。 如果存在,则返回的帧会传递此筛选器。 如果专家没有要传递给函数的显示筛选器 (如果 hFilter 为 NULL ) ,则不筛选返回的帧。
专家GetFrame 函数只能由实现 Run 或 Configure 导出函数的专家调用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|