AttachProperties 回调函数

AttachProperties 导出函数将属性映射到一段已识别数据内的位置。 必须为分析程序 DLL 支持的每个分析程序实现 AttachProperties。

语法

DWORD AttachProperties(
  _In_ HFRAME    hFrame,
  _In_ LPBYTE    lpFrame,
  _In_ LPBYTE    lpProtocol,
  _In_ DWORD     MacType,
  _In_ DWORD     BytesLeft,
  _In_ HPROTOCOL hPreviousProtocol,
  _In_ DWORD     nPreviousProtocolOffset,
  _In_ DWORD     lpInstData
);

参数

hFrame [in]

正在分析的帧的句柄。

lpFrame [in]

指向帧中第一个字节的指针。

lpProtocol [in]

指向已识别数据的开头的指针。

MacType [in]

帧中第一个协议的 MAC 值。 MacType 可以是下列项之一:

值 含义
MAC_TYPE_ETHERNET
802.3
MAC_TYPE_TOKENRING
802.5
MAC_TYPE_FDDI
ANSI X3T9.5

BytesLeft [in]

帧中从已识别数据的开头开始的剩余字节数。

hPreviousProtocol [in]

上一个协议的句柄。

nPreviousProtocolOffset [in]

从帧开头开始的上一个协议的偏移量。

lpInstData [in]

指向上一个协议提供的实例数据的指针。 实例数据的长度不能超过DWORD_PTR。

返回值

如果函数成功,则返回值是指向帧中已识别数据后的第一个字节的指针;如果已识别的数据是帧中的最后一段数据,则返回值为 NULL 。

如果该函数不成功,则返回值是指向已识别数据的指针。 lpProtocol 参数将指针传递给分析程序 DLL。

备注

网络监视器为每个识别帧中的数据段分析程序调用 AttachProperties 函数。 请注意,分析程序确定识别的数据中存在哪些属性,以及每个属性所在的位置。

在 AttachProperties 实现期间,调用 AttachPropertyInstance 以使用捕获中存在的数据。 还可以调用 AttachPropertyInstanceEx 函数来修改属性数据。 但是,建议使用捕获中存在的数据。

AttachPropertyInstanceEx 和 AttachPropertyInstance 函数仅针对已识别数据中存在的属性调用。 请注意,网络监视器具有分析程序 的属性数据库 ,其中包含分析程序支持的所有属性的说明。

实例数据

实例数据是从一个分析程序传递到另一个分析程序的信息。 实例数据可以是长度小于或等于DWORD_PTR的任何数据,也可以是指向数据(如原始帧数据)的指针,这些数据不需要由分析程序分配或释放。 在 AttachProperties 和 RecognizeFrame 函数的 lpInstData 参数中,网络监视器提供指向先前协议的实例数据的指针。 可以在 实现 RecognizeFrame 期间为分析程序设置实例数据。

相关信息 请参阅
什么是分析程序,以及它们如何与网络监视器配合使用。 分析器
分析程序 DLL 中包含哪些入口点。 分析程序 DLL 体系结构
如何识别数据。 实现 RecognizeFrame
如何创建属性数据库。 实现寄存器
如何实现 AttachProperties 包括一个示例。 实现 AttachProperties

要求

要求 值
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Netmon.h

另请参阅

AttachPropertyInstance

AttachPropertyInstanceEx

RecognizeFrame