Udostępnij za pośrednictwem


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:

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.

w jaki sposób monitor sieci identyfikuje funkcję do wywołania

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;
  }