MiniportInitializeEx Guidelines for PF Miniport Drivers
En este tema se describen las directrices para escribir una función MiniportInitializeEx para el controlador de miniporte 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 controlador de minipuerto PF sigue los mismos pasos que cualquier controlador de miniporte NDIS cuando su función MiniportInitializeEx . Para obtener más información sobre estos pasos, consulte Inicialización de un controlador miniport.
Además de estos pasos, el controlador de minipuerto PF debe seguir estos pasos adicionales cuando NDIS llama a la función MiniportInitializeEx del controlador:
El controlador de minipuerto PF llama a la función NdisGetHypervisorInfo para comprobar que se ejecuta en la partición primaria de Hyper-V. Esta función devuelve una estructura NDIS_HYPERVISOR_INFO que define el tipo de partición. Si el tipo de partición se notifica como NdisHypervisorPartitionMsHvParent, el controlador de minipuerto se ejecuta en la partición primaria de Hyper-V que está conectada al PF en el adaptador.
Nota Si el tipo de partición se notifica como NdisHypervisorPartitionMsHvChild, el controlador de miniporte se ejecuta en la partición secundaria de Hyper-V que está conectada a un VF en el adaptador. En este caso, el controlador de minipuerto no debe inicializarse como controlador PF. Si es posible, el controlador debe inicializarse como un controlador VF, tal y como se describe en Inicialización de un controlador miniportador VF.
El controlador de minipuerto PF debe leer las palabras clave estandarizadas sr-IOV para determinar si SR-IOV está habilitado y obtener los valores de configuración del conmutador NIC. Para obtener más información sobre estas palabras clave, vea Palabras clave INF estandarizadas para SR-IOV.
Nota Si el controlador de minipuerto PF registró un punto de entrada en una función MiniportSetOptions , el controlador puede haber obtenido previamente esta configuración del registro cuando NDIS llamó a MiniportSetOptions.
Si el adaptador de red admite SR-IOV, la cola de máquinas virtuales (VMQ) o RSS, el controlador de minipuerto debe determinar qué característica habilitar en el adaptador de red. Para obtener más información sobre cómo determinar esto, consulte Control de palabras clave INF estandarizadas sr-IOV, VMQ y RSS.
Junto con las funcionalidades de hardware RSS y VMQ (si se admiten), el controlador de minipuerto debe notificar su conjunto completo de funcionalidades sr-IOV de hardware. Estas funcionalidades deben anunciarse independientemente de la configuración de palabras clave estandarizadas de SR-IOV en el Registro.
Si SR-IOV está habilitado en el adaptador de red, el controlador de minipuerto también debe notificar la configuración sr-IOV actualmente habilitada en el adaptador.
Para obtener más información sobre cómo notificar las funcionalidades de SR-IOV, consulte Determinación de las funcionalidades de SR-IOV.
El controlador de minipuerto debe notificar su conjunto completo de funcionalidades de conmutador NIC de hardware. Estas funcionalidades deben anunciarse independientemente de la configuración de palabras clave estandarizadas de SR-IOV en el Registro.
Si SR-IOV está habilitado en el adaptador de red, el controlador de minipuerto también debe notificar la configuración del conmutador NIC actualmente habilitada en el adaptador.
Para obtener más información sobre cómo notificar las funcionalidades del conmutador de NIC, consulte Determinación de las funcionalidades del conmutador NIC.
El controlador de minipuerto debe notificar su conjunto completo de funcionalidades de filtrado de recepción de hardware. Estas funcionalidades deben anunciarse independientemente de la configuración de palabras clave estandarizadas de SR-IOV en el Registro.
Si SR-IOV está habilitado en el adaptador de red, el controlador de minipuerto también debe notificar la configuración de filtrado de recepción actualmente habilitada en el adaptador.
Para obtener más información sobre cómo notificar las funcionalidades de filtrado de recepción, vea Determinar las funcionalidades de filtrado de recepción.
Si el controlador de minipuerto admite la creación de conmutadores NIC estáticos, debe hacer lo siguiente en el contexto de la llamada a MiniportInitializeEx.
El controlador configura el hardware del adaptador en función de la configuración de palabras clave estandarizadas del conmutador NIC. En función de esta configuración, el controlador asigna los recursos de hardware y software necesarios para el conmutador NIC.
El controlador de minipuerto llama a NdisMEnableVirtualization para habilitar SR-IOV y establecer el número de VFs en el adaptador de red. Esta función configura la funcionalidad extendida SR-IOV en el espacio de configuración PCI del adaptador. Si esta función devuelve NDIS_STATUS_SUCCESS, SR-IOV está habilitado y las máquinas virtuales se exponen a través de la interfaz PCIe.
Para obtener más información, vea Creación estática de un conmutador NIC.
Nota Si el controlador de minipuerto admite la creación de conmutadores NIC dinámicos, crea el conmutador y habilita la virtualización cuando controla una solicitud de método de identificador de objeto (OID) de OID_NIC_SWITCH_CREATE_SWITCH. Para obtener más información, vea Creación dinámica de un conmutador NIC.