Поделиться через


Настройка 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"