Implementowanie właściwości FormatProperties
Funkcja Monitor Sieci wywołuje funkcję FormatProperties w celu sformatowania danych wyświetlanych w okienku szczegółów interfejsu użytkownika Monitora Sieci. Zazwyczaj FormatProperties jest wywoływana w celu sformatowania wiersza podsumowania dla protokołu, a następnie sformatowania wszystkich wystąpień właściwości protokołu w ramce. Jednak monitor sieci nie identyfikuje liczby wywołań FormatProperties dla określonego analizatora.
Podczas wywoływania FormatWłaściwości, Monitor Sieci udostępnia strukturę PROPERTYINST dla każdej wyświetlanej właściwości. Struktura PROPERTYINST zawiera informacje o danych do wyświetlenia, w tym wskaźnik do struktury PROPERTYINFO, która określa funkcję służącą do formatowania wyświetlanej właściwości danych.
Notatka
Struktura PROPERTYINFO jest określana podczas dodawania właściwości do bazy danych właściwości analizatora.
Network Monitor identyfikuje funkcję formatu do wywołania dla każdego wystąpienia właściwości. Członek InstanceData struktury PROPERTYINFO może określać następujące:
Funkcja FormatPropertyInstance, aby użyć ogólnego formatera, który zapewnia monitor sieci.
– lub –
Nazwa niestandardowej funkcji formatowania zapewnianej przez analizator.
FormatPropertyInstance i funkcje formatu niestandardowego zwracają sformatowane dane wyświetlane w okienku szczegółów interfejsu użytkownika monitora sieci.
Na poniższej ilustracji pokazano, jak Monitor Sieci identyfikuje funkcję do wywołania dla każdego wystąpienia właściwości.
Poniższa procedura identyfikuje kroki niezbędne do zaimplementowania FormatProperties.
Aby zaimplementować FormatProperties
- Używając struktury pętli, wywołaj funkcję formatowania dla każdej struktury PROPERTYINST, która jest przekazywana do analizatora w parametrze lpPropInst funkcji FormatProperties.
Poniżej przedstawiono podstawową implementację 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;
}