次の方法で共有


ハンドオフ セットの指定

ハンドオフ セットは、プロトコルに従うプロトコルを指定します。 パーサーは、パーサーがプロトコル インスタンス内のデータから次のプロトコルを識別できる場合にのみ、ハンドオフ セットを使用します。

たとえば、TCP プロトコルには、TCP プロトコルに続くプロトコルを識別するポート プロパティがあります。 プロパティ値 20 は、次のプロトコルが FTP であることを示します。 プロパティ値 53 は、次のプロトコルが DNS であることを示します。 port プロパティは、次のプロトコルを識別するため、TCP パーサーは次のハンドオフ セットを使用して、ポート プロパティが指定するプロトコルのハンドルを取得できます。

[TCP_HandoffSet]
  20    = FTP
  21    = FTP
  23    = TELNET
  25    = SMTP
  53    = DNS
  79    = FINGER
  80    = HTTP
  102   = ISO
  111   = RPC
  119   = NNTP
  137   = NBT, 1000
  138   = NBT, 1002
  139   = NBT, 1001
  389   = LDAP
  445   = NBT, 1001
  515   = LPR
  612   = HMMP
  613   = HMMP
  1024  = NBT, 1001
  1047  = NBT, 1001
  1362  = TDS
  1433  = TDS
  1723  = PPTP
  3020  = NBT, 1001
  3268  = LDAP
  5678  = PPTP

ハンドオフ セットはパーサー INI ファイルに格納されます。 たとえば、上記の TCP ハンドオフ セットは tcpip.ini ファイルにあります。 パーサー DLL で複数のプロトコルがサポートされている場合、ハンドオフ セットを使用する各パーサーには INI ファイル内の独自の場所があることに注意してください。

ハンドオフ セット情報は、 ParserAutoInstallInfo 関数の実装中に指定されます。 パーサーは、パーサー プロトコルの前にあるプロトコルと、パーサー プロトコルに従うプロトコルを指定できます。 Network Monitor は、前のすべてのプロトコルを受け取り、パーサー INI ファイルの次の set セクションにパーサー プロトコルを追加します。前のプロトコルごとに。 Network Monitor は、パーサー INI ファイルのハンドオフ セット セクションに従うプロトコルの一覧を格納します。

ネットワーク モニターは、ハンドオフ セット情報をパーサー INI ファイルに格納しますが、パーサーは INI ファイルに直接アクセスしません。 ハンドオフ セット内の情報を使用するために、パーサーは CreateHandoffTable 関数を呼び出してハンドオフ テーブルを作成します。 通常、ハンドオフ テーブルは、パーサーがプロトコルを登録するときに作成されます。 プロトコルが登録されると、Network Monitor によって、パーサーが使用できるハンドオフ セット テーブルが作成されます。

パーサーは、データを認識するときにハンドオフ セットを使用します。 最初に、パーサーは、次のプロトコルを識別する プロパティの値を読み取ります。 次に、パーサーは GetProtocolFromTable を呼び出して、次のプロトコルへのハンドルを取得します。 最後に、パーサーは RecognizeFramephNextProtocol パラメーター内のハンドルへのポインターを返します。