Fungsi panggilan balik RecognizeFrame

Fungsi ekspor RecognizeFrame menunjukkan apakah sepotong data dikenali sebagai protokol yang dideteksi pengurai. Fungsi ekspor RecognizeFrame harus diimplementasikan untuk setiap parser yang didukung DLL pengurai.

Sintaks

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]

Tangani ke bingkai yang berisi data.

lpFrame [in]

Penunjuk ke byte pertama bingkai. Penunjuk menyediakan cara untuk melihat data yang dikenali pengurai lain.

lpProtocol [in]

Arahkan ke awal data yang tidak diklaim. Biasanya, data yang tidak diklaim terletak di tengah bingkai karena pengurai sebelumnya telah mengklaim data sebelum pengurai ini. Pengurai harus menguji data yang tidak diklaim terlebih dahulu.

MacType [in]

Nilai MAC dari protokol pertama dalam bingkai. Biasanya, nilai MacType digunakan saat pengurai harus mengidentifikasi protokol pertama dalam bingkai. Nilai MacType dapat berupa salah satu hal berikut ini:

Nilai Makna
MAC_TYPE_ETHERNET
802.3
MAC_TYPE_TOKENRING
802.5
MAC_TYPE_FDDI
ANSI X3T9.5

BytesLeft [in]

Jumlah byte yang tersisa dari lokasi dalam bingkai ke akhir bingkai.

hPreviousProtocol [in]

Menangani protokol sebelumnya.

nPreviousProtocolOffset [in]

Offset dari protokol sebelumnya yang dimulai dari bingkai.

ProtocolStatusCode [out]

Indikator status protokol. DLL pengurai harus mengatur salah satu kode status berikut.

Nilai Makna
PROTOCOL_STATUS_RECOGNIZED
Pengurai mengenali data tetapi tidak tahu protokol mana yang mengikuti. Setelah mengatur kode, kembalikan pointer ke data sisa yang belum diklaim yang mengikuti protokol yang dikenali. Monitor Jaringan menggunakan set protokol berikut untuk terus mengurai.
PROTOCOL_STATUS_NOT_RECOGNIZED
Pengurai tidak mengenali data. Setelah mengatur kode ini, kembalikan penunjuk ke awal data menggunakan penunjuk yang diteruskan parameter lpProtocol ke DLL pengurai. Monitor Jaringan menggunakan set berikut dari protokol sebelumnya untuk terus mengurai.
PROTOCOL_STATUS_CLAIMED
Pengurai mengenali data dan mengklaim data yang tersisa. Setelah mengatur kode, kembalikan NULL untuk Monitor Jaringan untuk mengakhiri penguraian bingkai.
PROTOCOL_STATUS_NEXT_PROTOCOL
Pengurai mengenali data dan mengetahui protokol mana yang mengikuti. Setelah mengatur kode, atur parameter phNextProtocol , dan kembalikan pointer ke sisa data yang belum diklaim yang mengikuti protokol yang dikenali. Monitor Jaringan terus mengurai bingkai.

phNextProtocol [out]

Arahkan ke handel protokol berikutnya. Parameter ini diatur ketika protokol mengidentifikasi protokol yang mengikuti protokol. Untuk mendapatkan handel protokol berikutnya, panggil fungsi GetProtocolFromTable .

lpInstData [masuk, keluar]

Pada input, pointer ke data instans dari protokol sebelumnya.

Pada output, pointer ke data instans untuk protokol saat ini. Data instans tidak boleh lebih panjang dari DWORD_PTR panjangnya.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah penunjuk ke byte pertama setelah data pengurai yang dikenali. Jika pengurai mengklaim semua data yang tersisa, nilai yang dikembalikan adalah NULL.

Jika fungsi tidak berhasil, nilai yang dikembalikan adalah pointer awal yang diteruskan parameter lpProtocol .

Keterangan

Fungsi RecognizeFrame menentukan apakah pengurai mengenali data mentah yang dimulai dari pointer lpProtocol .

  • Jika protokol mengenali data, fungsi RecognizeFrame mengembalikan penunjuk ke data yang tersisa, atau mengembalikan NULL jika protokol saat ini adalah protokol terakhir dalam bingkai.
  • Jika protokol tidak mengenali data, fungsi RecognizeFrame mengembalikan pointer yang diteruskan ke DLL pengurai dalam parameter lpProtocol .

Catatan

RecognizeFrame dapat dipanggil sebelum fungsi Register dipanggil untuk mendaftarkan properti protokol. Untuk alasan itu, implementasi fungsi RecognizeFrame tidak bergantung pada properti atau struktur apa pun yang dibuat atau diinisialisasi selama implementasi protokol fungsi Register .

Set Handoff dan Ikuti Set

Pengurai dapat menggunakan set handoff atau mengikuti yang diatur untuk mengidentifikasi Network Monitor protokol yang mengikuti data yang dikenali.

  • Jika informasi tersedia dalam data yang dikenali, pengurai menggunakan set handoff-nya untuk mendapatkan handel ke protokol berikutnya, lalu meneruskan handel tersebut ke Monitor Jaringan.
  • Jika informasi tidak tersedia, pengurai tidak melewati handel, dan Monitor Jaringan menggunakan pengurai mengikuti yang diatur untuk menentukan protokol mana yang mengikuti.

Meneruskan informasi antar protokol

Gunakan parameter lpInstData untuk meneruskan informasi antar protokol. Pada input, Anda dapat mengambil informasi dari protokol sebelumnya. Pada output, Anda dapat meneruskan informasi ke protokol berikutnya.

Data instans dapat berupa data apa pun yang kurang dari atau sama dengan panjang DWORD_PTR, atau penunjuk ke data, seperti data bingkai mentah, yang tidak perlu dialokasikan oleh atau dibebaskan oleh pengurai.

Untuk Informasi tentang Lihat
Apa itu pengurai, dan cara kerjanya dengan Monitor Jaringan. Parser
Titik masuk mana yang disertakan dalam DLL pengurai. Arsitektur DLL Parser
Cara mengimplementasikan RecognizeFrame menyertakan contoh. Menerapkan RecognizeFrame
Cara menentukan set handoff dan mengikuti set. Menentukan Set HandoffYang Menentukan Kumpulan Ikuti

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Netmon.h

Lihat juga

GetProtocolFromTable