Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Network Monitor betölt egy rögzítést a rögzítési fájlból, majd elkezdi meghívni a Register függvényt az összes olyan protokollhoz, amelyet képes azonosítani. Minden elemző DLL-nek implementálnia kell egy Register függvényt minden olyan protokollhoz, amelyet az elemző DLL támogat.
A Register függvény minden implementációjának meg kell hívnia a CreatePropertyDatabase és AddProperty függvényt a protokoll tulajdonságadatbázis ának létrehozásához és kitöltéséhez, majd a CreateHandoffTable a protokollhoz tartozó átadási tábla létrehozásához – szükség esetén.
Jegyzet
A protokolltulajdonságok a Network Monitorhoz vannak definiálva. A tulajdonságok nem lesznek leképezve a rögzítési adatok egyik helyére, amíg a AttachProperties exportálási függvényt nem hívja meg.
Az alábbi eljárás a Register függvény végrehajtásához szükséges lépéseket azonosítja.
Egy protokollhoz tartozó regiszter bevezetése
- PROPERTYINFO struktúrák tömbjének definiálása a protokoll által támogatott összes tulajdonság leírásához.
- Hívja meg a protokollleíró megadásához és a protokoll által támogatott tulajdonságok számának megállapításához a CreatePropertyDatabase-t.
- Hívja meg AddProperty egy hurokban, hogy hozzáadja mindegyik tulajdonságot, amely a PROPERTYINFO struktúratömbben van definiálva.
- Ha a protokoll egy átadási táblát használ, hívja meg CreateHandoffTable– miután a protokoll összes tulajdonsága hozzá lesz adva a tulajdonságadatbázishoz.
Az alábbiakban a alapszintű implementációja található. Vegye figyelembe, hogy egy tulajdonságadatbázis olyan protokollhoz jön létre, amely csak két tulajdonságot támogat. Ez a példakód a Network Monitor által biztosított általános elemzőből származik.
#include <windows.h>
PROPERTYINFO MyProtocolPropertyTable[]
{
// Summary property (0)
{
0, // Handle to property.
0, // Reserved.
"Summary", // Property label.
"Summary of protocol packet", // Property comment.
PROP_TYPE_SUMMARY, // Data type of property.
PROP_QUAL_NONE, // Data type qualifier.
NULL, // Reserved.
80, //
FormatPropertyInstance //
}
// WORD property (1)
{
0, // Handle to property.
0, // Reserved.
"WORD property", // Property label.
"16-bit WORD property", // Property comment.
PROP_TYPE_WORD, // Data type of property.
PROP_QUAL_NONE, // Data type qualifier.
NULL, // Reserved.
80, //
FormatPropertyInstance //
}
}
void BHAPI MyProtocolRegister( HPPROTOCOL hProtocol)
{
// Create property database.
DWORD dwNumberOfProperties = 2;
CreatePropertyDatabase (hProtocol,
dwNumberOfProperties
);
// Add properties to database.
WORD i;
for( i=0; i< dwNumberOfProperties; i++)
{
AddProperty(hProtocol, &MyProtocolPropertyTable[i]);
}
// Create handoff table.
CreateHandoffTable("myProtocolHandoffTable",
"myProtocol.ini",
hTable,
MaxEntries,
10 // Handoff set values are base 10.
)
}