DriverEntry Guidelines for PF Miniport Drivers
En este tema se describen las directrices para escribir una función DriverEntry para el controlador de minipuerto de la función física PCI Express (PCIe) (PF). Pf es un componente de un adaptador de red que admite la virtualización de E/S raíz única (SR-IOV).
Nota Estas directrices solo se aplican a los controladores de miniporte PF. Para obtener instrucciones de inicialización para el controlador de minipuerto de una función virtual PCIe (VF) del adaptador, consulta Inicializar un controlador miniport de VF.
El adaptador de red SR-IOV debe implementar un puente de hardware que reenvíe el tráfico de red a través del puerto físico en el adaptador y los puertos virtuales internos (VPorts). Este puente se conoce como conmutador NIC. Para obtener más información, consulte Conmutadores NIC.
Si el controlador de minipuerto PF admite la creación estática del conmutador NIC en el adaptador de red SR-IOV, es posible que tenga que asignar recursos de conmutador cuando se crea el objeto de dispositivo funcional (FDO) para el adaptador de red en la pila de dispositivos. En este caso, el controlador debe asignar esos recursos antes de que NDIS llame a MiniportInitializeEx. Para ello, el controlador debe registrar controladores opcionales Plug-and-Play (PnP) para que pueda participar en el proceso cuando se agregue o quite el FDO del adaptador de la pila de dispositivos.
El controlador de minipuerto debe proporcionar una función MiniportSetOptions para registrar estas funciones de controlador PnP. Para ello, el controlador sigue estos pasos desde el contexto de la llamada a su función DriverEntry :
El controlador de minipuerto inicializa una estructura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS con los puntos de entrada de las funciones MiniportXxx . En concreto, el controlador establece el miembro SetOptionsHandler en el punto de entrada de la función MiniportSetOptions del controlador.
El controlador de minipuerto llama a la función NdisMRegisterMiniportDriver para registrar sus puntos de entrada. Desde el contexto de esta llamada, NDIS llama a la función MiniportSetOptions del controlador.
Cuando NDIS llama a MiniportSetOptions, el controlador de miniporta llama a la función NdisSetOptionalHandlers y especifica una estructura NDIS_MINIPORT_PNP_CHARACTERISTICS . Esta estructura define los puntos de entrada de las funciones MiniportAddDevice, MiniportRemoveDevice, MiniportStartDevice y MiniportFilterResourceRequirements . NDIS llama a estas funciones de controlador cuando controla paquetes de solicitud de E/S PnP (IRP) emitidos por el controlador de bus PCI.
Si el controlador de minipuerto PF debe asignar recursos de software adicionales para el conmutador NIC antes de que NDIS llame a la función MiniportInitializeEx del controlador, el controlador debe registrar una función MiniportAddDevice . Cuando NDIS llama a la función MiniportAddDevice , el controlador de minipuerto PF puede llamar a NdisReadConfiguration para leer la configuración de la palabra clave de configuración del conmutador NIC del Registro. Para obtener más información sobre estas palabras clave, vea Palabras clave INF estandarizadas para SR-IOV.
Para obtener más información sobre las directrices para la función MiniportAddDevice , consulte MiniportAddDevice Guidelines for PF Miniport Drivers.
Para obtener más información sobre cómo se crean los conmutadores de NIC, consulte Creación de un conmutador NIC.