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-Funktion , um den generischen Formatierer zu verwenden, den Network Monitor bereitstellt.
– oder –
Der Name einer benutzerdefinierten Formatfunktion, die der Parser bereitstellt.
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.
Im folgenden Verfahren werden die schritte beschrieben, die zum Implementieren von FormatProperties erforderlich sind.
So implementieren Sie FormatProperties
- Rufen Sie mithilfe einer Schleifenstruktur die Formatfunktion für jede PROPERTYINST-Struktur auf, die im lpPropInst-Parameter der FormatProperties-Funktion an den Parser übergeben wird.
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;
}