網路監視器會呼叫 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;
}