Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Следующие проблемы с установкой драйвера фильтра 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-файле сети.
Задайте запись NetCfgInstanceId в файле INF, как показано в следующем примере.
NetCfgInstanceId="{5cbf81bd-5055-47cd-9055-a76b2b4e3697}"
С помощью средства Uuidgen.exe можно создать GUID для записи NetCfgInstanceId.
Раздел DDInstall INF-файла драйвера фильтра должен содержать директиву Addreg для ключа Ndi. INF-файл должен указать запись Service в ключе в разделе Ndi. Запись ServiceBinary в разделе установки службы INF-файла указывает путь к двоичному файлу драйвера фильтра. Дополнительные сведения см. в разделе Добавление связанных со службой значений в ключ Ndi и раздел 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. Класс драйвера может быть одним из значений в следующей таблице.
Ценность Описание планировщик
Служба управления фильтрацией пакетов. Этот класс драйвера фильтра является драйвером верхнего уровня, который может существовать выше фильтров классов шифрования в стеке драйверов. Планировщик пакетов обнаруживает классификацию приоритета 802.1p, которая предоставляется пакетам по качеству компонентов обслуживания (QoS), а планировщик отправляет эти уровни базовым драйверам в соответствии с их приоритетом.
шифрование
Драйверы фильтров классов шифрования существуют между фильтрами планировщика и класса сжатия.
сжатие
Драйверы фильтров классов сжатия существуют между фильтрами шифрования и класса VPN.
VPN
Драйверы фильтров классов VPN существуют между драйверами фильтрации сжатия и балансировки нагрузки.
балансировка нагрузки
Служба балансировки нагрузки и фильтрации. Этот класс драйверов-фильтров располагается между драйверами планирования пакетов и драйверами управления отказами. Служба фильтрации балансировки нагрузки балансирует рабочую нагрузку передачи пакетов путем распределения рабочей нагрузки по набору базовых минипорт-адаптеров.
переключение на резерв
Служба фильтра отказоустойчивости. Этот класс драйвера фильтра существует между драйверами балансировки нагрузки и диагностики.
диагностический
Драйверы фильтров диагностики находятся ниже драйверов отработки отказа в стеке.
обычай
Драйверы фильтров в пользовательском классе существуют ниже диагностических драйверов.
адрес_поставщика
Драйверы фильтров адресов поставщика расположены ниже встроенного фильтра виртуализации сети 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 для установки ключей непосредственно в состояние службы является нарушением требований соответствия. Эти ключи необходимо добавить в ключ параметров службы для соответствия.
[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"