FormatProperties implementálása

A Network Monitor meghívja a FormatProperties függvényt a Hálózatfigyelő felhasználói felületének részletek ablaktábláján megjelenő adatok formázására. A FormatProperties általában egy protokoll összegző sorának formázására, majd a protokoll összes tulajdonságpéldányának kereten belüli formázására hívható meg. A Network Monitor azonban nem azonosítja, hogy a FormatProperties hányszor van meghívva egy adott elemzőhöz.

A FormatPropertieshívásakor a Network Monitor PROPERTYINST struktúrát biztosít minden megjelenített tulajdonsághoz. A PROPERTYINST struktúra információt nyújt a megjelenítendő adatokról, beleértve a PROPERTYINFO struktúrára mutató mutatót, amely meghatározza a megjelenített adattulajdonság formázásához használandó függvényt.

Jegyzet

Egy PROPERTYINFO struktúra van megadva, amikor tulajdonságot ad hozzá az elemző tulajdonságadatbázisához.

 

A Network Monitor azonosítja az egyes tulajdonságpéldányokhoz meghívandó függvény formátumát. A PROPERTYINFO struktúrájának InstanceData tagja a következőket adhatja meg:

A FormatPropertyInstance és az egyéni formátumfüggvények a Hálózatfigyelő felhasználói felület részletek paneljében megjelenített formázott adatokat adják vissza.

Az alábbi ábra azt mutatja be, hogyan azonosítja a Network Monitor az egyes tulajdonságpéldányokhoz meghívni kívánt függvényt.

hogyan azonosítja a hálózatfigyelő, hogy melyik függvényt kell meghívni

Az alábbi eljárás a FormatPropertiesvégrehajtásához szükséges lépéseket azonosítja.

A FormatProperties implementálása

  • Hurokstruktúra használatával hívja meg a formázó függvényt minden egyes PROPERTYINST szerkezetre, amelyet az FormatProperties függvény lpPropInst paraméterében adnak át az elemzőnek.

Az alábbiakban a FormatPropertiesalapszintű implementációját íme.

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