CommView for WiFi ermöglicht die Verwendung von zwei
selbstdefinierten Decoder-Arten:
Einfacher Decoder
Wenn Sie diesen Decodertyp wählen wird die Decoder-Ausgabe in einer
Extraspalte im Register
Pakete
angezeigt. Der Decoder sollte dabei eine 32-bit DLL-Datei namens
"Custom.dll" sein, die nur eine Prozedur namens "Decode"
exportiert. Der Prototyp dieser Prozedur wird unten in C und Pascal
dargestellt:
extern "C" {
void __stdcall Decode(unsigned char *PacketData, int
PacketLen, char *Buffer, int BufferLen);
}
procedure Decode (PacketData: PChar; PacketLen: integer; Buffer:
PChar; BufferLen: integer); stdcall;
Die DLL muß sich dabei im CommView for WiFi
Installationsverzeichnis befinden. Beim Start von CommView for WiFi
sucht es nach der Custom.dll im Installationsverzeichnis und lädt
diese in den Speicher. Wenn der Eingangspunkt für Decode gefunden
wurde, fügt CommView for WiFi eine neue Spalte namens Custom
(Selbstdefiniert) der Paketliste hinzu.
Wird ein neues Paket empfangen und angezeigt, ruft CommView for
WiFi die Decode-Prozedur auf und gibt die Paketinhalte an die DLL
weiter. Die Decode-Prozedur muß nun die Paketinformation
verarbeiten und kopiert dann das Ergebnis in den Puffer. Das erste
Argument ist der Paket-Pointer zu den Paketdaten, das zweite
Argument die Datenlänge und das dritte Argument der Pointer zum
Puffer, in den die Ergebnisse des Decodings kopiert werden sollen.
Das vierte Argument ist die Puffergröße (derzeit stets 1024 Bytes).
Der gesamte Puffer ist für CommView for WiFi zugeteilt und
freigegeben. Sie sollten nicht versuchen diese Zuteilung zu ändern.
Das in den Speicher kopierte Ergebnis wird dann als String in der
Spalte Custom angezeigt.
Ihre Prozedur sollte schnell genug sein um tausende von
Paketen/Sekunde zu verarbeiten. Sonst wird die Anwendung unnötig
langsam. Bitte halten Sie sich auch an die Konvention
STDCALL.
Zwei Demo-DLL’s sind verfügbar. Sie zeigen eine einfache Operation:
Die Ausgabe der Decode-Funktion ist der Hexcode der letzten Byte
des Paketes. Ihr eigener Decoder kann natürlich beliebig komplex
sein:
·http://www.tamos.com/products/commview/cust_decoder_c.zip.
Dies ist ein Visual Studio Projekt mit C++ Quellcode.
·http://www.tamos.com/products/commview/cust_decoder_d.zip.
Dies ist ein Delphi-Project mit Pascal Sourcecode.
Komplexer Decoder
Bei der Verwendung dieses Decodertypes wird die Decoderausgabe als
zusätzliche Objekte im Paketdecoderbaum angezeigt. Mehr zur
Implementation dieses Decoders erhalten Sie durch das Herunterladen
folgender Datei:
http://www.tamos.com/products/commview/complex_decoder_c7.zip
Diese Decoderart kann nur in Microsoft Visual C++ geschrieben
werden, da es mit C++ erzeugte Klassen benutzt.
Technischer Support
Technischen Support für maßgeschneiderte Decoder gibt es auf der
Basis von "Besten Ergebnissen".
|