Compartir a través de


Función NdisMEnableVirtualization (ndis.h)

Un controlador de miniporta llama a la función NdisMEnableVirtualization durante la creación o eliminación de un conmutador NIC en el adaptador de red. Al llamar a esta función, el controlador configura la virtualización de E/S raíz única (SR-IOV) Estructura de funcionalidad extendida en el espacio de configuración de PCI Express (PCIe) para la función física (PF) del adaptador de red.

Nota NdisMEnableVirtualization solo debe llamarlo el controlador de miniport para el PF del adaptador de red.
 

Sintaxis

NDIS_STATUS NdisMEnableVirtualization(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] USHORT      NumVFs,
  [in] BOOLEAN     EnableVFMigration,
  [in] BOOLEAN     EnableMigrationInterrupt,
  [in] BOOLEAN     EnableVirtualization
);

Parámetros

[in] NdisMiniportHandle

Identificador del adaptador de red que NDIS pasó al parámetro MiniportAdapterHandle de MiniportInitializeEx.

[in] NumVFs

Valor de USHORT que contiene el número de funciones virtuales (VFs) que se van a habilitar para el adaptador de red. NdisMEnableVirtualization establece el miembro NumVFs de la estructura de funcionalidad extendida de SR-IOV en el valor del parámetro NumVFs.

Nota Si el parámetro EnableVirtualization es FALSE, NumVFs debe establecerse en cero.
 

[in] EnableVFMigration

Este parámetro está reservado para NDIS y debe establecerse en FALSE.

[in] EnableMigrationInterrupt

Este parámetro está reservado para NDIS y debe establecerse en FALSE.

[in] EnableVirtualization

Valor BOOLEAN que especifica si la virtualización debe habilitarse en el espacio de configuración PCI del adaptador de red. Si EnableVirtualization es TRUE, NdisMEnableVirtualization establece el VF Enable bit del miembro control de SR-IOV. NdisMEnableVirtualization borra este bit si enableVirtualization es FALSE.

Valor devuelto

NdisMEnableVirtualization puede devolver uno de los siguientes valores de estado.

Código devuelto Descripción
NDIS_STATUS_SUCCESS
La operación de virtualización se completó correctamente.
NDIS_STATUS_NOT_SUPPORTED
El adaptador o sistema no admite SR-IOV.
NDIS_STATUS_INVALID_PARAMETER
El parámetro EnableVirtualization se establece en FALSE y el parámetro NumVFs se establece en un valor distinto de cero.
NDIS_STATUS_FAILURE
Error en la operación de virtualización.
Nota La función NdisMEnableVirtualization produce un error si se llama a para habilitar la virtualización cuando la virtualización ya está habilitada. El controlador primero debe deshabilitar la virtualización (llamando a la función con la EnableVirtualization parámetro establecido en FALSE) antes de que el controlador pueda volver a habilitar la virtualización.
 

Observaciones

Los controladores de miniport pf llaman a NdisMEnableVirtualization para configurar los campos de funcionalidad extendida de SR-IOV en el espacio de configuración de PCI. Esta llamada se usa para habilitar o deshabilitar la virtualización en el espacio de configuración y también para especificar el número de máquinas virtuales que el adaptador de red debe exponer al tejido PCIe.

Cuando el controlador de miniporte PF controla una solicitud de método OID de OID_NIC_SWITCH_CREATE_SWITCH, el controlador llama a NdisMEnableVirtualization para habilitar la virtualización en el adaptador de red para el conmutador NIC. Para ello, llama a NdisMEnableVirtualization con la siguiente configuración de parámetros.

Término Descripción
NumVFs Establézcalo en el número de máquinas virtuales que se va a habilitar para el conmutador NIC.
enableVirtualization Establezca en TRUE.
 

Cuando el controlador de miniport pf controla una solicitud de método OID de OID_NIC_SWITCH_DELETE_SWITCH, el controlador llama a NdisMEnableVirtualization para deshabilitar la virtualización en el adaptador de red. Para ello, llama a NdisMEnableVirtualization con la siguiente configuración de parámetros:

Término Descripción
NumVFs Establézcalo en cero.
enableVirtualization Establézcalo en FALSE.
 

Para obtener más información sobre cómo crear un conmutador NIC, consulte Creación de un conmutador NIC.

Para obtener más información sobre la interfaz de SR-IOV, consulte Información general sobre la virtualización de E/S raíz única (SR-IOV).

interfase a un controlador de Virtual Bus

Si un proveedor de hardware independiente (IHV) proporciona un controlador de bus virtual (VBD) como parte de su paquete de controladores SR-IOV , su controlador de miniport no debe llamar a NdisMEnableVirtualization. En su lugar, el controlador debe interactuar con VBD a través de un canal de comunicación privado y solicitar que la llamada de VBD EnableVirtualization. Esta función la proporciona la interfaz GUID_PCI_VIRTUALIZATION_INTERFACE compatible con el controlador de bus PCI subyacente.

El VBD que se ejecuta en el sistema operativo de administración de Hyper-V partición primaria puede consultar la interfaz de GUID_PCI_VIRTUALIZATION_INTERFACE mediante la emisión de una solicitud de IRP_MN_QUERY_INTERFACE a su objeto de dispositivo físico (PDO) en el bus PCI. Esta solicitud debe realizarse desde IRQL = PASSIVE_LEVEL. En esta solicitud, el controlador debe establecer el parámetro InterfaceType en GUID_PCI_VIRTUALIZATION_INTERFACE.

Requisitos

Requisito Valor
cliente mínimo admitido Compatible con NDIS 6.30 y versiones posteriores.
de la plataforma de destino de Universal
encabezado de ndis.h (incluya Ndis.h)
biblioteca de Ndis.lib
irQL PASSIVE_LEVEL

Consulte también

enableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH