RecognizeFrame-Rückruffunktion

Die Exportfunktion RecognizeFrame gibt an, ob ein Datenteil als vom Parser erkanntes Protokoll erkannt wird. Die RecognizeFrame-Exportfunktion muss für jeden Parser implementiert werden, der von der Parser-DLL unterstützt wird.

Syntax

LPBYTE RecognizeFrame(
  _In_    HFRAME      hFrame,
  _In_    LPBYTE      lpFrame,
  _In_    LPBYTE      lpProtocol,
  _In_    DWORD       MacType,
  _In_    DWORD       BytesLeft,
  _In_    HPROTOCOL   hPreviousProtocol,
  _In_    DWORD       nPreviousProtocolOffset,
  _Out_   LPDWORD     ProtocolStatusCode,
  _Out_   LPHPROTOCOL phNextProtocol,
  _Inout_ PDWORD_PTR  lpInstData
);

Parameter

hFrame [ In]

Handle für den Frame, der die Daten enthält.

lpFrame [ In]

Zeiger auf das erste Byte eines Frames. Der Zeiger bietet eine Möglichkeit zum Anzeigen von Daten, die von anderen Parsern erkannt werden.

lpProtocol [ In]

Zeiger auf den Anfang der nicht beanspruchten Daten. In der Regel befinden sich die nicht beanspruchten Daten in der Mitte eines Frames, da ein vorheriger Parser Daten vor diesem Parser beansprucht hat. Der Parser muss zuerst die nicht beanspruchten Daten testen.

MacType [ In]

MAC-Wert des ersten Protokolls in einem Frame. In der Regel wird der MacType-Wert verwendet, wenn der Parser das erste Protokoll in einem Frame identifizieren muss. Der MacType-Wert kann einer der folgenden sein:

Wert Bedeutung
_MAC-TYP _ ETHERNET
802.3
_MAC-TYP _ TOKENRING
802.5
_ _ FDDI DES MAC-TYPS
ANSI X3T9.5

BytesLeft [ In]

Die verbleibende Anzahl von Bytes von einer Position in einem Frame bis zum Ende des Frames.

hPreviousProtocol [ In]

Handle des vorherigen Protokolls.

nPreviousProtocolOffset [ In]

Offset des vorherigen Protokollanfangs des Frames.

ProtocolStatusCode [ out]

Protokollstatusindikator. Die Parser-DLL muss einen der folgenden Statuscodes festlegen.

Wert Bedeutung
PROTOKOLLSTATUS _ _ ERKANNT
Der Parser erkennt die Daten, weiß aber nicht, welches Protokoll folgt. Geben Sie nach dem Festlegen des Codes einen Zeiger auf die verbleibenden nicht beanspruchten Daten zurück, die dem erkannten Protokoll folgen. Netzwerkmonitor verwendet den folgenden Satz des Protokolls, um die Analyse fortzufahren.
PROTOKOLLSTATUS _ _ NICHT _ ERKANNT
Der Parser erkennt die Daten nicht. Geben Sie nach dem Festlegen dieses Codes den Zeiger auf den Anfang der Daten zurück, indem Sie den Zeiger verwenden, den der lpProtocol-Parameter an die Parser-DLL übergibt. Netzwerkmonitor verwendet den folgenden Satz des vorherigen Protokolls, um die Analyse fortzufahren.
BEANSPRUCHTER _ _ PROTOKOLLSTATUS
Der Parser erkennt die Daten und beansprucht die verbleibenden Daten. Geben Sie nach dem Festlegen des Codes NULL für Netzwerkmonitor, um die Analyse eines Frames zu beenden.
PROTOKOLLSTATUS _ _ NEXT _ PROTOCOL
Der Parser erkennt die Daten und weiß, welches Protokoll folgt. Legen Sie nach dem Festlegen des Codes den Parameter phNextProtocol fest, und geben Sie einen Zeiger auf die verbleibenden nicht beanspruchten Daten zurück, die dem erkannten Protokoll folgen. Netzwerkmonitor den Frame weiter.

phNextProtocol [ out]

Zeiger auf das Handle des nächsten Protokolls. Dieser Parameter wird festgelegt, wenn ein Protokoll das Protokoll identifiziert, das einem Protokoll folgt. Um das Handle des nächsten Protokolls zu erhalten, rufen Sie die GetProtocolFromTable-Funktion auf.

lpInstData [ in, out]

Bei der Eingabe ein Zeiger auf die Instanzdaten aus dem vorherigen Protokoll.

Bei der Ausgabe ein Zeiger auf die Instanzdaten für das aktuelle Protokoll. Instanzdaten dürfen nicht länger als eine _ DWORD-PTR-Länge sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Zeiger auf das erste Byte nach den erkannten Parserdaten. Wenn der Parser alle verbleibenden Daten beansprucht, ist der Rückgabewert NULL.

Wenn die Funktion nicht erfolgreich ist, ist der Rückgabewert ein erster Zeiger, den der lpProtocol-Parameter übergibt.

Bemerkungen

Die RecognizeFrame-Funktion bestimmt, ob der Parser die Rohdaten erkennt, beginnend beim lpProtocol-Zeiger.

  • Wenn das Protokoll die Daten erkennt, gibt die RecognizeFrame-Funktion einen Zeiger auf die verbleibenden Daten oder NULL zurück, wenn das aktuelle Protokoll das letzte Protokoll in einem Frame ist.
  • Wenn das Protokoll die Daten nicht erkennt, gibt die RecognizeFrame-Funktion den Zeiger zurück, der an die Parser-DLL im lpProtocol-Parameter übergeben wird.

Hinweis

RecognizeFrame kann aufgerufen werden, bevor die Register-Funktion aufgerufen wird, um die Protokolleigenschaften zu registrieren. Aus diesem Grund ist die Implementierung der RecognizeFrame-Funktion nicht auf Eigenschaften oder Strukturen angewiesen, die während der Implementierung der Register-Funktion des Protokolls erstellt oder initialisiert werden.

Übergabesatz und Folgesatz

Ein Parser kann einen Handoff-Satz oder einen Folgesatz verwenden, um für das Protokoll zu Netzwerkmonitor, das den erkannten Daten folgt.

  • Wenn Informationen in erkannten Daten verfügbar sind, verwendet der Parser seinen Übergabesatz, um ein Handle für das nächste Protokoll zu erhalten, und übergibt dieses Handle dann Netzwerkmonitor.
  • Wenn keine Informationen verfügbar sind, über gibt der Parser kein Handle weiter, und Netzwerkmonitor verwendet den Parser follow set, um zu bestimmen, welches Protokoll folgt.

Übergeben von Informationen zwischen Protokollen

Verwenden Sie den lpInstData-Parameter, um Informationen zwischen Protokollen zu übergeben. Bei der Eingabe können Sie die Informationen aus dem vorherigen Protokoll abrufen. Bei der Ausgabe können Sie Informationen an das nächste Protokoll übergeben.

Instanzdaten können beliebige Daten sein, die kleiner oder gleich einer DWORD PTR-Länge sind, oder ein Zeiger auf Daten, z. B. Unformatierte Framedaten, die vom Parser nicht zugeordnet oder vom Parser freigestellt werden _ müssen.

Informationen zu Siehe
Was Parser sind und wie sie mit Netzwerkmonitor. Parser
Welche Einstiegspunkte in der Parser-DLL enthalten sind. Parser-DLL-Architektur
Das Implementieren von RecognizeFrame enthält ein Beispiel. Implementieren von RecognizeFrame
Angeben eines Übergabesets und Befolgen des Sets Angeben eines Handoffsets unterAngabe eines Folgesets

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Netmon.h

Weitere Informationen

GetProtocolFromTable