Указание набора handoff
Набор для передачи указывает протоколы, следующие за протоколом. Средство синтаксического анализа использует набор передач, только если средство синтаксического анализа может определить следующий протокол из данных в экземпляре протокола.
Например, протокол 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 . Средство синтаксического анализа может указать протоколы, предшествующие протоколу средства синтаксического анализа, и протоколы, следующие протоколу средства синтаксического анализа. Сетевой монитор принимает все протоколы, предшествующие, и добавляет протокол синтаксического анализа в следующие разделы ini-файла средства синтаксического анализа для каждого предыдущего протокола. Сетевой монитор хранит список протоколов, которые следует за этим, в разделе набора для передачи INI-файла средства синтаксического анализа.
Сетевой монитор хранит сведения о наборе передачи в INI-файле средства синтаксического анализа, но средство синтаксического анализа не обращается к INI-файлам напрямую. Чтобы использовать сведения в наборе для передачи, средство синтаксического анализа вызывает функцию CreateHandoffTable для создания таблицы передачи. Как правило, таблица передачи создается, когда средство синтаксического анализа регистрирует протокол. После регистрации протокола монитор сети создает таблицу наборов передач, которую может использовать средство синтаксического анализа.
Средство синтаксического анализа использует набор передачи при распознавании данных. Сначала средство синтаксического анализа считывает значение свойства, определяющего следующий протокол. Затем средство синтаксического анализа вызывает GetProtocolFromTable , чтобы получить дескриптор следующего протокола. Наконец, средство синтаксического анализа возвращает указатель на дескриптор в параметре phNextProtocolrecognizeFrame.