實作 FormatProperties
網路監視器會呼叫 FormatProperties 函式來格式化網路監視器 UI 詳細資料窗格中顯示的資料。 一般而言, 會呼叫 FormatProperties 來格式化通訊協定的摘要行,然後在框架內格式化通訊協定的所有屬性實例。 不過,網路監視器不會識別針對特定剖析器呼叫 FormatProperties 的次數。
呼叫 FormatProperties時,網路監視器會為其顯示的每個屬性提供 PROPERTYINST 結構。 PROPERTYINST結構會提供要顯示之資料的相關資訊,包括PROPERTYINFO結構的指標,指定要用來格式化所顯示資料屬性的函式。
注意
將屬性加入剖析器的屬性資料庫時,會指定PROPERTYINFO結構。
網路監視器會識別要針對每個屬性實例呼叫的格式函式。 PROPERTYINFO結構的InstanceData成員可以指定下列專案:
FormatPropertyInstance函式,可使用網路監視器所提供的泛型格式器。
-或-
剖析器所提供的自訂格式函式名稱。
FormatPropertyInstance和自訂格式函式會傳回顯示在網路監視器 UI 詳細資料窗格中的格式化資料。
下圖顯示網路監視器如何識別要針對每個屬性實例呼叫的函式。
下列程式會識別實作 FormatProperties所需的步驟。
實作 FormatProperties
- 使用迴圈結構,針對FormatProperties函式的lpPropInst參數中傳遞至剖析器的每個PROPERTYINST結構呼叫 format 函式。
以下是 FormatProperties的基本實作。
#include <windows.h>
DWORD BHAPI MyProtocolFormatProperties( HFRAME hFrame,
LPBYTE pMacFrame,
LPBYTE pBLRPLATEFrame,
DWORD nPropertyInsts
LPPROPERTYINST p)
{
while( nPropertyInsts-- > 0)
{
( (FORMAT) p->lpPropertyInfo->InstanceData) ) (p);
p++;
}
return BHERR_SUCCESS;
}