Настройка INF-файла для драйвера фильтра изменения
Следующие проблемы с установкой драйвера фильтра NDIS связаны с изменением драйверов фильтров. Чтобы создать собственный INF-файл изменяющегося драйвера фильтра, можно также адаптировать пример драйвера фильтра NDIS 6.0.
Задайте для записи INF-файла классазначение NetService в INF-файле. В следующем примере показан пример записи класса для INF-файла.
Class = NetService
Раздел DDInstall в INF-файле драйвера фильтра должен содержать запись Характеристики . В следующем примере показано, как определить запись "Характеристики " в INF-файле фильтра.
Characteristics=0x40000
Значение 0x40000 указывает, что задан NCF_LW_FILTER (0x40000). Драйверы фильтров не должны устанавливать флаг NCF_FILTER (0x400). Значения флагов NCF_ Xxx определяются в Netcfgx.h. Дополнительные сведения о NCF_ флагах Xxx см. в разделе Раздел DDInstall в INF-файле сети.
Задайте запись INF-файла NetCfgInstanceId в INF-файле, как показано в следующем примере.
NetCfgInstanceId="{5cbf81bd-5055-47cd-9055-a76b2b4e3697}"
С помощью средстваUuidgen.exe можно создать GUID для записи NetCfgInstanceId .
Раздел DDInstall INF-файла для драйвера фильтра должен содержать директиву Addreg для ключа Ndi . В INF-файле должна быть указана запись Service в разделе Ndi . Запись ServiceBinary в разделе service-install INF-файла указывает путь к двоичному файлу для драйвера фильтра. Дополнительные сведения см. в разделах Добавление значений, связанных со службой, в раздел Ndi Key и DDInstall.Services в INF-файле сети.
Раздел DDInstall в INF-файле драйвера фильтра должен содержать записи FilterType и FilterRunType . Чтобы указать фильтр изменения, определите запись FilterType в INF-файле, как показано в следующем примере.
HKR, Ndi,FilterType,0x00010001 ,0x00000002
Значение FilterType 0x00000002 указывает, что фильтр является изменяющимся фильтром.
Определите запись FilterRunType в INF-файле, как показано в следующем примере.
HKR, Ndi,FilterRunType,0x00010001 ,0x00000001
Значение 0x00000001 в предыдущем примере указывает, что модуль фильтра является обязательным. Чтобы установить необязательный модуль фильтра, задайте для записи FilterRunType значение 0x00000002. Дополнительные сведения см. в разделе Обязательные драйверы фильтра.
В следующем примере показано, как в INF-файле изменяющегося драйвера фильтра указывается имя службы.
HKR, Ndi,Service,,"NdisLwf"
В этом примере NdisLwf — это имя службы драйвера, переданное в NDIS. Обратите внимание, что имя службы драйвера фильтра может отличаться от имени двоичного файла драйвера, но обычно они совпадают.
В следующем примере показано, как INF-файл фильтра ссылается на имя службы драйвера фильтра при добавлении этой службы.
[Install.Services] AddService=NdisLwf,,NdisLwf_Service_Inst;, common.EventLog [NdisLwf_Service_Inst] DisplayName = %NdisLwf_Desc% ServiceType = 1 ;SERVICE_KERNEL_DRIVER StartType = 1 ;SERVICE_SYSTEM_START ErrorControl = 1 ;SERVICE_ERROR_NORMAL ServiceBinary = %13%\ndislwf.sys LoadOrderGroup = NDIS Description = %NdisLwf_Desc% AddReg = Common.Params.reg
Inf-файл фильтра должен указывать по крайней мере имя основной службы фильтра для атрибута CoServices , как показано в следующем примере.
HKR, Ndi,CoServices,0x00010000,"NdisLwf"
Дополнительные сведения об атрибуте CoServices см. в разделе Добавление значений, связанных со службой, в ключ Ndi.
Значение FilterClass в INF-файле для драйвера фильтра определяет его порядок в стеке фильтров. Драйверы фильтров должны определять ключ FilterClass . Класс драйвера может быть одним из значений, приведенных в следующей таблице.
Значение Описание scheduler
Служба фильтрации планирования пакетов. Этот класс драйвера фильтра является драйвером самого высокого уровня, который может существовать над фильтрами класса шифрования в стеке драйверов. Планировщик пакетов обнаруживает классификацию приоритета 802.1p, которая предоставляется пакетам по компонентам сигнализации качества обслуживания (QoS), и планировщик отправляет эти уровни пакетов базовым драйверам в соответствии с их приоритетом.
шифрование
Драйверы фильтров классов шифрования существуют между фильтрами планировщика и класса сжатия.
compression
Драйверы фильтров класса сжатия существуют между фильтрами шифрования и класса VPN.
vpn
Драйверы фильтров класса VPN существуют между драйверами фильтров сжатия и балансировки нагрузки.
балансировка нагрузки
Служба фильтра балансировки нагрузки. Этот класс драйвера фильтра существует между драйверами планирования пакетов и драйверами отработки отказа. Служба фильтрации балансировки нагрузки распределяет рабочую нагрузку передачи пакетов, распределяя рабочую нагрузку по набору базовых адаптеров мини-портов.
отработка отказа
Служба фильтрации отработки отказа. Этот класс драйвера фильтра существует между драйверами балансировки нагрузки и драйверами диагностика.
диагностические
Драйверы диагностических фильтров существуют ниже драйверов отработки отказа в стеке.
custom
Драйверы-фильтры в пользовательском классе существуют ниже диагностических драйверов.
provider_address
Драйверы фильтров адресов поставщиков существуют под встроенным сетевым ms_wnv виртуализации hyper-V, ms_wnv фильтровать и работать с пакетами адресов поставщика (PA).
Примечание Если несколько драйверов фильтров имеют один класс FilterClass, все они будут добавлены в многоуровневый стек драйверов фильтров. Система назначает порядок наложений каждому из изменяющихся драйверов фильтра с тем же FilterClass. В некоторых случаях системный администратор может изменить относительный порядок драйверов фильтров с одинаковым FilterClass.
В следующем примере показан пример FilterClass .
HKR, Ndi,FilterClass,, compression
В расширяемом коммутаторе Hyper-V допустимы только драйверы фильтров расширения коммутатора Hyper-V. Драйверы фильтров расширяемого коммутатора Hyper-V должны определять ключ FilterClass с одним из значений, приведенных в следующей таблице.
Значение Описание ms_switch_capture
Начиная с версии NDIS 6.30 драйверы отслеживания отслеживают трафик пакетов в стеке драйверов расширяемого коммутатора Hyper-V. Этот класс драйвера фильтра существует под пользовательскими драйверами в стеке.
Дополнительные сведения об этом классе драйвера см. в разделе Сбор расширений.
ms_switch_filter
Начиная с версии NDIS 6.30, фильтрация драйверов фильтрует трафик пакетов и применяет политику порта или коммутатора для доставки пакетов через стек драйверов расширяемого коммутатора. Этот класс драйвера фильтра существует ниже ms_switch_capture драйверов в стеке.
Дополнительные сведения об этом классе драйвера см. в разделе Фильтрация расширений.
ms_switch_forward
Начиная с версии NDIS 6.30 фильтр драйверов пересылки выполняет те же функции, что и драйвер фильтрации. Драйверы переадресации также перенаправляют пакеты на порты расширяемого коммутатора и из нее. Этот класс драйвера фильтра существует ниже ms_switch_filter драйверов в стеке.
Дополнительные сведения об этом классе драйверов см. в разделе Расширения пересылки.
Для управления привязками драйвера необходимо определить следующие записи в INF-файле изменяющегося драйвера фильтра.
HKR, Ndi\Interfaces,UpperRange,,"noupper" HKR, Ndi\Interfaces,LowerRange,,"nolower" HKR, Ndi\Interfaces, FilterMediaTypes,,"ethernet"
Дополнительные сведения об управлении привязками драйверов см. в разделе Указание связей привязки драйвера фильтра.
Inf-файл изменяющего фильтра может указывать общие определения параметров для драйвера и параметров, связанных с определенным адаптером. В следующем примере показаны некоторые распространенные определения параметров.
Внимание!
Использование HKR AddReg для добавления ключей непосредственно в состояние службы является нарушением соответствия требованиям. Чтобы обеспечить соответствие требованиям, эти ключи необходимо добавить в ключ Parameters службы.
[Common.Params.reg]
HKR, FilterDriverParams\DriverParam, ParamDesc, , "Driverparam for lwf"
HKR, FilterDriverParams\DriverParam, default, , "5"
HKR, FilterDriverParams\DriverParam, type, , "int"
HKR, FilterAdapterParams\AdapterParam, ParamDesc, , "Adapterparam for lwf"
HKR, FilterAdapterParams\AdapterParam, default, , "10"
HKR, FilterAdapterParams\AdapterParam, type, , "int"