Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Monitor sítí načte data ze souboru záznamu a pak začne volat funkci Register pro všechny protokoly, které dovede identifikovat. Každá knihovna DLL analyzátoru musí implementovat funkci Register pro každý protokol, který knihovna DLL analyzátoru podporuje.
Každá implementace funkce Register musí volat funkci CreatePropertyDatabase a funkci AddProperty k vytvoření a vyplnění databáze vlastností pro protokol, a poté vytvořit pomocí CreateHandoffTable předávací tabulku pro protokol – v případě potřeby.
Poznámka
Vlastnosti protokolu jsou definovány pro monitorování sítě. Vlastnosti nejsou mapovány na umístění v záznamu dat, dokud není zavolána exportní funkce AttachProperties.
Následující postup identifikuje kroky potřebné k implementaci funkce Register.
Implementace registrace pro jeden protokol
- Definujte pole PROPERTYINFO struktur, které popisují každou vlastnost, kterou protokol podporuje.
- Zavolejte CreatePropertyDatabase pro poskytnutí popisovače protokolu a počtu vlastností, které protokol podporuje.
- Zavolejte AddProperty ve smyčce, abyste přidali každou vlastnost definovanou v poli struktury PROPERTYINFO.
- Pokud protokol používá tabulku předání, zavolejte CreateHandoffTable– po přidání všech vlastností protokolu do databáze vlastností.
Následuje základní implementace registru. Všimněte si, že databáze vlastností je vytvořena pro protokol, který podporuje pouze dvě vlastnosti. Tento příklad kódu pochází z obecného analyzátoru, který poskytuje Network Monitor.
#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.
)
}