Configuración de un archivo INF para un controlador de filtro de modificación
Los siguientes problemas de instalación del controlador de filtro NDIS están asociados a la modificación de controladores de filtro. Para crear su propio archivo INF del controlador de filtro de modificación, también puede adaptar el controlador de filtro NDIS 6.0 de ejemplo.
Establezca la entrada del archivo CLASS INF en NetService en el archivo INF. En el ejemplo siguiente se muestra una entrada de clase de ejemplo para el archivo INF.
Class = NetService
La sección DDInstall de un archivo INF del controlador de filtro debe tener una entrada Características . En el ejemplo siguiente se muestra cómo definir la entrada Características en el archivo INF de filtro.
Characteristics=0x40000
El valor de 0x40000 indica que se establece NCF_LW_FILTER (0x40000). Los controladores de filtro no deben establecer la marca de NCF_FILTER (0x400). Los valores de las marcas NCF_ Xxx se definen en Netcfgx.h. Para obtener más información sobre NCF_ marcas Xxx , vea DDInstall Section in a Network INF File.
Establezca la entrada del archivo INF NetCfgInstanceId en el archivo INF, como se muestra en el ejemplo siguiente.
NetCfgInstanceId="{5cbf81bd-5055-47cd-9055-a76b2b4e3697}"
Puede usar la herramienta Uuidgen.exe para crear el GUID para la entrada NetCfgInstanceId .
La sección DDInstall del archivo INF para un controlador de filtro debe incluir una directiva Addreg para una clave Ndi . El archivo INF debe especificar la entrada Servicio en la clave Ndi . La entrada ServiceBinary de la sección service-install del archivo INF especifica la ruta de acceso al binario para el controlador de filtro. Para obtener más información, vea Agregar valores relacionados con el servicio a la clave Ndi y lasección DDInstall.Services en un archivo INF de red.
La sección DDInstall de un archivo INF del controlador de filtro debe tener entradas FilterType y FilterRunType . Para especificar un filtro de modificación, defina la entrada FilterType en el archivo INF, como se muestra en el ejemplo siguiente.
HKR, Ndi,FilterType,0x00010001 ,0x00000002
El valor FilterType 0x00000002 indica que el filtro es un filtro modificador.
Defina la entrada FilterRunType en el archivo INF, como se muestra en el ejemplo siguiente.
HKR, Ndi,FilterRunType,0x00010001 ,0x00000001
El valor 0x00000001 del ejemplo anterior indica que el módulo de filtro es obligatorio. Para instalar un módulo de filtro opcional, establezca la entrada FilterRunType en 0x00000002. Para obtener más información, vea Controladores de filtro obligatorios.
En el ejemplo siguiente se muestra cómo un archivo INF del controlador de filtro de modificación especifica el nombre del servicio.
HKR, Ndi,Service,,"NdisLwf"
En este ejemplo, NdisLwf es el nombre del servicio del controlador, ya que se notifica a NDIS. Tenga en cuenta que el nombre del servicio de un controlador de filtro puede ser diferente del nombre del binario del controlador, pero normalmente son los mismos.
En el ejemplo siguiente se muestra cómo el archivo INF de filtro hace referencia al nombre del servicio del controlador de filtro cuando agrega ese servicio.
[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
Un archivo INF de filtro debe especificar al menos el nombre del servicio principal del filtro para el atributo CoServices , como se muestra en el ejemplo siguiente.
HKR, Ndi,CoServices,0x00010000,"NdisLwf"
Para obtener más información sobre el atributo CoServices , vea Agregar valores relacionados con el servicio a la clave Ndi.
El valor FilterClass del archivo INF de un controlador de filtro determina su orden en una pila de filtros. Los controladores de filtro deben definir la clave FilterClass . La clase del controlador puede ser uno de los valores de la tabla siguiente.
Valor Descripción scheduler
Servicio de filtro de programación de paquetes. Esta clase de controlador de filtro es el controlador de nivel superior que puede existir por encima de los filtros de clase de cifrado en una pila de controladores. Un programador de paquetes detecta la clasificación de prioridad 802.1p que se asigna a los paquetes por componentes de señalización de calidad de servicio (QoS) y el programador envía esos niveles de paquetes a los controladores subyacentes según su prioridad.
El cifrado
Existen controladores de filtro de clase de cifrado entre los filtros de clase de programación y de compresión.
compression
Existen controladores de filtro de clase de compresión entre los filtros de clase de cifrado y vpn.
vpn
Existen controladores de filtro de clase VPN entre los controladores de filtro de compresión y equilibrio de carga.
loadbalance
Servicio de filtro de equilibrio de carga. Esta clase de controlador de filtro existe entre la programación de paquetes y los controladores de conmutación por error. Un servicio de filtro de equilibrio de carga equilibra su carga de trabajo de transferencias de paquetes mediante la distribución de la carga de trabajo sobre su conjunto de adaptadores de minipuerto subyacentes.
failover
Servicio de filtro de conmutación por error. Esta clase de controlador de filtro existe entre los controladores de equilibrio de carga y diagnóstico.
diagnóstico
Los controladores de filtro de diagnóstico existen por debajo de los controladores de conmutación por error de la pila.
custom
Los controladores de filtro de la clase personalizada existen a continuación de los controladores de diagnóstico.
provider_address
Los controladores de filtro de direcciones del proveedor existen debajo de los paquetes de virtualización de red de Hyper-V ms_wnv y funcionan en paquetes de dirección de proveedor (PA).
Nota Si varios controladores de filtro tienen el mismo FilterClass, todos se agregarán a la pila superpuesta de controladores de filtro. El sistema asigna un orden de capas a cada controlador de filtro que modifica con la misma FilterClass. En algunos casos, el administrador del sistema puede reorganizar el orden relativo de los controladores de filtro que tienen la misma FilterClass.
En el ejemplo siguiente se muestra un filterClass de ejemplo .
HKR, Ndi,FilterClass,, compression
Solo los controladores de filtro de extensión de conmutador de Hyper-V son válidos en el conmutador extensible de Hyper-V. Los controladores de filtro de conmutador extensible de Hyper-V deben definir la clave FilterClass con uno de los valores de la tabla siguiente.
Valor Descripción ms_switch_capture
A partir de NDIS 6.30, los controladores de captura supervisan el tráfico de paquetes en la pila de controladores de conmutador extensible de Hyper-V. Esta clase de controlador de filtro existe debajo de los controladores personalizados de la pila.
Para obtener más información sobre esta clase de controlador, vea Capturar extensiones.
ms_switch_filter
A partir de NDIS 6.30, el filtrado de controladores filtra el tráfico de paquetes y aplica la directiva de puerto o conmutador para la entrega de paquetes a través de la pila de controladores de conmutador extensible. Esta clase de controlador de filtro existe a continuación ms_switch_capture controladores de la pila.
Para obtener más información sobre esta clase de controlador, vea Filtrado de extensiones.
ms_switch_forward
A partir de NDIS 6.30, el filtro de controladores de reenvío realiza las mismas funciones que un controlador de filtrado. Los controladores de reenvío también reenvía paquetes hacia y desde puertos de conmutador extensibles. Esta clase de controlador de filtro existe a continuación ms_switch_filter controladores de la pila.
Para obtener más información sobre esta clase de controlador, vea Reenvío de extensiones.
Debe definir las siguientes entradas en el archivo INF del controlador de filtro modificador para controlar los enlaces de controladores.
HKR, Ndi\Interfaces,UpperRange,,"noupper" HKR, Ndi\Interfaces,LowerRange,,"nolower" HKR, Ndi\Interfaces, FilterMediaTypes,,"ethernet"
Para obtener más información sobre cómo controlar los enlaces de controladores, vea Especificar relaciones de enlace de controladores de filtro.
Un archivo INF de filtro modificador puede especificar definiciones de parámetro comunes para el controlador y los parámetros asociados a un adaptador específico. En el ejemplo siguiente se muestran algunas definiciones de parámetro comunes.
Precaución
El uso de HKR AddReg para colocar claves directamente bajo el estado del servicio es una infracción de cumplimiento. Estas claves deben agregarse en la clave Parámetros del servicio para que sea compatible.
[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"