Implementera Formategenskaper

Network Monitor anropar funktionen FormatProperties för att formatera data som visas i informationsfönstret i användargränssnittet för nätverksövervakaren. Vanligtvis anropas FormatProperties för att formatera sammanfattningsraden för ett protokoll och sedan formatera alla egenskapsinstanser av protokollet inom en ram. Nätverksövervakaren identifierar dock inte antalet gånger som FormatProperties anropas för en specifik parser.

När du anropar FormatPropertiestillhandahåller Nätverksövervakaren en PROPERTYINST- struktur för varje egenskap som visas. PROPERTYINST- struktur innehåller information om de data som ska visas, inklusive en pekare till PROPERTYINFO struktur som anger vilken funktion som ska användas för att formatera den visade dataegenskapen.

Notera

En PROPERTYINFO-struktur specificeras när du lägger till en egenskap i egenskapsdatabasen för parsern.

 

Network Monitor identifierar formatfunktionen som ska anropas för varje egenskapsinstans. InstanceData medlem i strukturen PROPERTYINFO kan ange följande:

FormatPropertyInstance- och funktionerna för anpassat format returnerar de formaterade data som visas i detaljpanelen i Network Monitor UI.

Följande bild visar hur Network Monitor identifierar funktionen som ska anropas för varje egenskapsinstans.

hur nätverksövervakaren identifierar funktionen för att anropa

Följande procedur identifierar de steg som krävs för att implementera FormatProperties.

Implementera FormatEgenskaper

  • Med hjälp av en loopstruktur anropar du formatfunktionen för varje PROPERTYINST- struktur som skickas till parsern i parametern lpPropInst för funktionen FormatProperties.

Följande är en grundläggande implementering av 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;
  }