Compartir a través de


MiniportAddDevice Guidelines for PF Miniport Drivers

En este tema se describen las directrices para escribir una función MiniportAddDevice 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 administrador de Plug and Play (PnP) llama a la función AddDevice de NDIS para crear el objeto de dispositivo funcional (FDO) para el adaptador de red. Si el controlador de minipuerto PF registró un punto de entrada MiniportAddDevice cuando llamó a NdisMRegisterMiniportDriver, NDIS llama a la función MiniportAddDevice del controlador.

Cuando se llama a MiniportAddDevice , el controlador de minipuerto PF puede asignar recursos de software adicionales para el conmutador SR-IOV y la tarjeta de interfaz de red (NIC). Normalmente, se trata de recursos que se deben asignar antes de que NDIS llame a la función MiniportInitializeEx del controlador.

El controlador puede hacer lo siguiente en el contexto de la llamada a MiniportAddDevice:

  • El controlador de minipuerto PF puede llamar a NdisReadConfiguration para leer los valores de configuración del conmutador SR-IOV y NIC del registro. Estas opciones de configuración se definen a través de las palabras clave estándar SR-IOV. Para obtener más información sobre estas palabras clave, vea Palabras clave INF estandarizadas para SR-IOV.

  • En función de estas opciones de configuración, el controlador de minipuerto PF asigna los recursos de software adicionales para el adaptador de red SR-IOV.

Nota La asignación real de recursos de hardware y la habilitación de SR-IOV en el espacio de configuración PCI solo se debe realizar dentro del contexto de la llamada a MiniportInitializeEx. Dado que el espacio de E/S asignado a memoria del adaptador de red (MMIO) no está inicializado cuando se llama a MiniportAddDevice , el controlador de miniporte no debe leer ni escribir en el adaptador hasta que se llame a MiniportInitializeEx .