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 |
|