Freigeben über


Implementieren von FormatProperties

Network Monitor ruft die FormatProperties-Funktion auf, um die Daten zu formatieren, die im Detailbereich der Benutzeroberfläche des Netzwerkmonitors angezeigt werden. In der Regel wird FormatProperties aufgerufen, um die Zusammenfassungszeile für ein Protokoll zu formatieren und dann alle Eigenschaftsinstanzen des Protokolls in einem Frame zu formatieren. Der Netzwerkmonitor gibt jedoch nicht an, wie oft FormatProperties für einen bestimmten Parser aufgerufen wird.

Beim Aufrufen von FormatProperties stellt Network Monitor eine PROPERTYINST-Struktur für jede angezeigte Eigenschaft bereit. Die PROPERTYINST-Struktur stellt Informationen zu den anzuzeigenden Daten bereit, einschließlich eines Zeigers auf die PROPERTYINFO-Struktur , die die Funktion angibt, die zum Formatieren der angezeigten Dateneigenschaft verwendet werden soll.

Hinweis

Beim Hinzufügen einer Eigenschaft zur Eigenschaftendatenbank des Parsers wird eine PROPERTYINFO-Struktur angegeben.

 

Network Monitor identifiziert die Formatfunktion, die für jede Eigenschaft instance aufgerufen werden soll. Das InstanceData-Member der PROPERTYINFO-Struktur kann Folgendes angeben:

Die FormatPropertyInstance - und die benutzerdefinierten Formatfunktionen geben die formatierten Daten zurück, die im Detailbereich der Benutzeroberfläche des Netzwerkmonitors angezeigt werden.

Die folgende Abbildung zeigt, wie Network Monitor die Funktion identifiziert, die für jede Eigenschaft instance aufgerufen werden soll.

Wie der Netzwerkmonitor die aufzurufende Funktion identifiziert

Im folgenden Verfahren werden die schritte beschrieben, die zum Implementieren von FormatProperties erforderlich sind.

So implementieren Sie FormatProperties

Es folgt eine grundlegende Implementierung von 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;
  }